{
    "openapi": "3.0.3",
    "info": {
        "title": "APT Shop API",
        "version": "2.0.0",
        "description": "Willkommen zur **APT Shop API v2** \ud83d\udecd\ufe0f\nDiese API erm\u00f6glicht den Zugriff auf Bestellungen, Produkte, Kunden und weitere Shopdaten \u00fcber eine standardisierte REST-Schnittstelle.\n            \n---\n            \n### \ud83d\udd10 **Authentifizierung**\n            \nF\u00fcr alle *private* Endpunkte ist eine Authentifizierung \u00fcber **OAuth 2.0 Client Credentials** oder einen **Bearer Token (JWT)** erforderlich.\n            \n**Token-URL:**\n`POST /api/v2/oauth/token`\n            \n#### \ud83d\udd38 Option 1 \u2013 \u00dcbergabe per Body (`application/x-www-form-urlencoded`)\nDie Zugangsdaten werden **nicht** als JSON gesendet,  \nsondern als **Form-Data (URL-encoded)** im Request-Body:\n\n```\ngrant_type=client_credentials&\nclient_id=DEIN_CLIENT_ID&\nclient_secret=DEIN_CLIENT_SECRET&\nscope=products.read orders.read orders.create orders.update\n```\n\n#### \ud83d\udd38 Option 2 \u2013 \u00dcbergabe per Basic Auth Header\nAlternativ kannst du `client_id` und `client_secret` per Header senden:\n\n```\nAuthorization: Basic <base64(client_id:client_secret)>\nContent-Type: application/x-www-form-urlencoded\n```\n\nRequest-Body:\n```\ngrant_type=client_credentials&\nscope=products.read orders.read\n```\n\n            \n**Beispiel-Antwort:**\n```json\n{\n  \"access_token\": \"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...\",\n  \"token_type\": \"Bearer\",\n  \"expires_in\": 3600\n}\n```\n            \nVerwende anschlie\u00dfend den Token in jedem Request-Header:\n            \n```\nAuthorization: Bearer <ACCESS_TOKEN>\n```\n            \nWenn du noch keine Zugangsdaten hast, **fordere deine `client_id` und dein `client_secret` beim H\u00e4ndler oder Systemadministrator an.**\n            \n---\n            \n### \ud83d\udcd8 **Scopes (Zugriffsrechte)**\n            \nJede Operation ben\u00f6tigt bestimmte Berechtigungen (Scopes):\n            \n### OAuth2 Scopes\n\nDie folgenden Scopes steuern den Zugriff auf einzelne API-Ressourcen. Die jeweils benoetigten Scopes stehen zusaetzlich direkt an den einzelnen Endpunkten.\n\n<details><summary><b>Scope-Uebersicht anzeigen (131 Gruppen / 331 Scopes)</b></summary>\n\n| Ressource | Lesen | Erstellen | Bearbeiten | Loeschen |\n|-----------|-------|------------|------------|----------|\n| **Affiliates** | `affiliates.read` | `affiliates.create` | `affiliates.update` | `affiliates.delete` |\n| **Availabilities** | `availabilities.read` | `availabilities.create` | `availabilities.update` | `availabilities.delete` |\n| **Baskets** | `baskets.read` | `baskets.create` | `baskets.update` | `baskets.delete` |\n| **Bills** | `bills.read` | `bills.create` | - | - |\n| **Cashmarketings** | `cashmarketings.read` | `cashmarketings.create` | `cashmarketings.update` | `cashmarketings.delete` |\n| **Cashstores** | `cashstores.read` | - | - | - |\n| **Categories** | `categories.read` | - | - | - |\n| **Categoryattributeassignments** | `categoryattributeassignments.read` | `categoryattributeassignments.create` | - | `categoryattributeassignments.delete` |\n| **Categoryvariationgroupassignments** | `categoryvariationgroupassignments.read` | `categoryvariationgroupassignments.create` | - | `categoryvariationgroupassignments.delete` |\n| **Clickcollecttermins** | `clickcollecttermins.read` | - | - | - |\n| **Contactforms** | `contactforms.read` | `contactforms.create` | `contactforms.update` | `contactforms.delete` |\n| **Content** | `content.read` | `content.create` | `content.update` | `content.delete` |\n| **Contentlines** | `contentlines.read` | `contentlines.create` | `contentlines.update` | `contentlines.delete` |\n| **Contentmodules** | `contentmodules.read` | `contentmodules.create` | `contentmodules.update` | `contentmodules.delete` |\n| **Contentrows** | `contentrows.read` | `contentrows.create` | `contentrows.update` | `contentrows.delete` |\n| **Counterarchives** | `counterarchives.read` | - | - | - |\n| **Countries** | `countries.read` | - | - | - |\n| **Countrystates** | `countrystates.read` | `countrystates.create` | `countrystates.update` | `countrystates.delete` |\n| **Currencies** | `currencies.read` | `currencies.create` | `currencies.update` | `currencies.delete` |\n| **Custgroupdiscounts** | `custgroupdiscounts.read` | `custgroupdiscounts.create` | `custgroupdiscounts.update` | `custgroupdiscounts.delete` |\n| **Customergroups** | `customergroups.read` | `customergroups.create` | `customergroups.update` | `customergroups.delete` |\n| **Customers** | `customers.read` | `customers.create` | `customers.update` | `customers.delete` |\n| **Deliverynotes** | `deliverynotes.read` | - | - | - |\n| **Depots** | `depots.read` | `depots.create` | `depots.update` | `depots.delete` |\n| **Discountgroupcustomergroups** | `discountgroupcustomergroups.read` | `discountgroupcustomergroups.create` | `discountgroupcustomergroups.update` | `discountgroupcustomergroups.delete` |\n| **Discountgroups** | `discountgroups.read` | `discountgroups.create` | `discountgroups.update` | `discountgroups.delete` |\n| **Dropshippers** | `dropshippers.read` | `dropshippers.create` | `dropshippers.update` | `dropshippers.delete` |\n| **Emailblacklist** | `emailblacklist.read` | `emailblacklist.create` | `emailblacklist.update` | `emailblacklist.delete` |\n| **Emailtemplates** | `emailtemplates.read` | - | `emailtemplates.update` | - |\n| **Faq** | `faq.read` | `faq.create` | `faq.update` | `faq.delete` |\n| **Firmmultishops** | `firmmultishops.read` | - | - | - |\n| **Inventories** | `inventories.read` | - | - | - |\n| **Languages** | `languages.read` | - | - | - |\n| **Manufactors** | `manufactors.read` | `manufactors.create` | `manufactors.update` | `manufactors.delete` |\n| **Multishopcustomergroups** | `multishopcustomergroups.read` | `multishopcustomergroups.create` | - | `multishopcustomergroups.delete` |\n| **Multishopdomains** | `multishopdomains.read` | `multishopdomains.create` | - | `multishopdomains.delete` |\n| **Multishops** | `multishops.read` | - | - | - |\n| **News** | `news.read` | `news.create` | `news.update` | `news.delete` |\n| **Newsletterrecipients** | `newsletterrecipients.read` | `newsletterrecipients.create` | `newsletterrecipients.update` | `newsletterrecipients.delete` |\n| **Newsletters** | `newsletters.read` | `newsletters.create` | `newsletters.update` | `newsletters.delete` |\n| **Newslettertemplates** | `newslettertemplates.read` | `newslettertemplates.create` | `newslettertemplates.update` | `newslettertemplates.delete` |\n| **Orderhistories** | `orderhistories.read` | - | - | - |\n| **Orders** | `orders.read` | `orders.create` | `orders.update` | - |\n| **Ordershippinglists** | `ordershippinglists.read` | - | - | - |\n| **Orderstatusemails** | `orderstatusemails.read` | `orderstatusemails.create` | `orderstatusemails.update` | `orderstatusemails.delete` |\n| **Orderstatuses** | `orderstatuses.read` | - | - | - |\n| **Packagedimensions** | `packagedimensions.read` | `packagedimensions.create` | `packagedimensions.update` | `packagedimensions.delete` |\n| **Packagings** | `packagings.read` | `packagings.create` | `packagings.update` | `packagings.delete` |\n| **Page404** | `page404.read` | - | - | `page404.delete` |\n| **Paymenttypes** | `paymenttypes.read` | - | - | - |\n| **Pricegroups** | `pricegroups.read` | `pricegroups.create` | `pricegroups.update` | `pricegroups.delete` |\n| **Printtemplates** | `printtemplates.read` | `printtemplates.create` | `printtemplates.update` | - |\n| **Productattributedefinitions** | `productattributedefinitions.read` | `productattributedefinitions.create` | `productattributedefinitions.update` | `productattributedefinitions.delete` |\n| **Productattributegroupassignments** | `productattributegroupassignments.read` | `productattributegroupassignments.create` | `productattributegroupassignments.update` | `productattributegroupassignments.delete` |\n| **Productattributegroups** | `productattributegroups.read` | `productattributegroups.create` | `productattributegroups.update` | `productattributegroups.delete` |\n| **Productattributes** | `productattributes.read` | `productattributes.create` | - | `productattributes.delete` |\n| **Productattributevalues** | `productattributevalues.read` | `productattributevalues.create` | `productattributevalues.update` | `productattributevalues.delete` |\n| **Productbulletpoints** | `productbulletpoints.read` | `productbulletpoints.create` | `productbulletpoints.update` | `productbulletpoints.delete` |\n| **Productbundles** | `productbundles.read` | - | - | - |\n| **Productcategoryassignments** | `productcategoryassignments.read` | `productcategoryassignments.create` | - | `productcategoryassignments.delete` |\n| **Productcountryexclusions** | `productcountryexclusions.read` | `productcountryexclusions.create` | - | `productcountryexclusions.delete` |\n| **Productdownloads** | `productdownloads.read` | - | - | - |\n| **Productfaqs** | `productfaqs.read` | `productfaqs.create` | `productfaqs.update` | `productfaqs.delete` |\n| **Productfreetexts** | `productfreetexts.read` | - | - | - |\n| **Productimages** | `productimages.read` | `productimages.create` | `productimages.update` | `productimages.delete` |\n| **Productlicensekeys** | `productlicensekeys.read` | - | - | - |\n| **Productnotifications** | `productnotifications.read` | - | - | - |\n| **Productnutrition** | `productnutrition.read` | - | - | - |\n| **Productorderfieldgroupassignments** | `productorderfieldgroupassignments.read` | `productorderfieldgroupassignments.create` | `productorderfieldgroupassignments.update` | `productorderfieldgroupassignments.delete` |\n| **Productorderfieldgroups** | `productorderfieldgroups.read` | `productorderfieldgroups.create` | `productorderfieldgroups.update` | `productorderfieldgroups.delete` |\n| **Productorderfields** | `productorderfields.read` | - | - | - |\n| **Productpaymentexclusions** | `productpaymentexclusions.read` | `productpaymentexclusions.create` | - | `productpaymentexclusions.delete` |\n| **Productpresenters** | `productpresenters.read` | `productpresenters.create` | `productpresenters.update` | `productpresenters.delete` |\n| **Productratings** | `productratings.read` | - | - | - |\n| **Products** | `products.read` | `products.create` | `products.update` | - |\n| **Productshippingmethods** | `productshippingmethods.read` | `productshippingmethods.create` | - | `productshippingmethods.delete` |\n| **Productspricehistory** | `productspricehistory.read` | - | - | - |\n| **Productsstockhistory** | `productsstockhistory.read` | - | - | - |\n| **Productvariationgroups** | `productvariationgroups.read` | `productvariationgroups.create` | `productvariationgroups.update` | `productvariationgroups.delete` |\n| **Productvariationitems** | `productvariationitems.read` | `productvariationitems.create` | `productvariationitems.update` | `productvariationitems.delete` |\n| **Productviewtabs** | `productviewtabs.read` | - | - | - |\n| **Productvisibility** | `productvisibility.read` | `productvisibility.create` | - | `productvisibility.delete` |\n| **Promotions** | `promotions.read` | - | - | - |\n| **Protectedshops** | `protectedshops.read` | - | - | - |\n| **Redirects** | `redirects.read` | `redirects.create` | `redirects.update` | `redirects.delete` |\n| **Referrers** | `referrers.read` | - | - | - |\n| **Salutations** | `salutations.read` | `salutations.create` | `salutations.update` | `salutations.delete` |\n| **Searchstatslogs** | `searchstatslogs.read` | - | - | - |\n| **Securityiprules** | `securityiprules.read` | `securityiprules.create` | `securityiprules.update` | `securityiprules.delete` |\n| **Shippinggroups** | `shippinggroups.read` | - | - | - |\n| **Shippinglabels** | `shippinglabels.read` | - | - | - |\n| **Shippinglists** | `shippinglists.read` | - | - | - |\n| **Shippingtypes** | `shippingtypes.read` | - | - | - |\n| **Shippingzones** | `shippingzones.read` | - | - | - |\n| **Socialassets** | - | `socialassets.create` | - | - |\n| **Socialinsights** | `socialinsights.read` | - | - | - |\n| **Socialposts** | `socialposts.read` | `socialposts.create` | `socialposts.update` | `socialposts.delete` |\n| **Socialtargets** | `socialtargets.read` | - | - | - |\n| **Socialvideos** | - | `socialvideos.create` | - | - |\n| **Statictexts** | `statictexts.read` | - | `statictexts.update` | - |\n| **Statsgroups** | `statsgroups.read` | `statsgroups.create` | `statsgroups.update` | `statsgroups.delete` |\n| **Stockbookings** | `stockbookings.read` | - | - | - |\n| **Subdomains** | `subdomains.read` | `subdomains.create` | `subdomains.update` | `subdomains.delete` |\n| **Subscriptionintervals** | `subscriptionintervals.read` | `subscriptionintervals.create` | `subscriptionintervals.update` | - |\n| **Subscriptionorders** | `subscriptionorders.read` | - | - | - |\n| **Subscriptionplans** | `subscriptionplans.read` | `subscriptionplans.create` | `subscriptionplans.update` | - |\n| **Supplierorders** | `supplierorders.read` | - | - | - |\n| **Suppliers** | `suppliers.read` | `suppliers.create` | `suppliers.update` | `suppliers.delete` |\n| **Systememails** | `systememails.read` | - | - | `systememails.delete` |\n| **Tablecolumnsetups** | `tablecolumnsetups.read` | - | - | - |\n| **Taxes** | `taxes.read` | `taxes.create` | `taxes.update` | `taxes.delete` |\n| **Textsnippets** | `textsnippets.read` | `textsnippets.create` | `textsnippets.update` | `textsnippets.delete` |\n| **Themeareaparams** | `themeareaparams.read` | - | `themeareaparams.update` | - |\n| **Themeareas** | `themeareas.read` | - | `themeareas.update` | - |\n| **Themeareatpls** | `themeareatpls.read` | - | `themeareatpls.update` | - |\n| **Themecontentlayouts** | `themecontentlayouts.read` | - | - | - |\n| **Themecontentlayoutsides** | `themecontentlayoutsides.read` | - | - | - |\n| **Themejsfiles** | `themejsfiles.read` | - | `themejsfiles.update` | - |\n| **Themejsfileversions** | `themejsfileversions.read` | - | `themejsfileversions.update` | - |\n| **Themes** | `themes.read` | - | `themes.update` | - |\n| **Trustedshops** | `trustedshops.read` | `trustedshops.create` | `trustedshops.update` | `trustedshops.delete` |\n| **Units** | `units.read` | `units.create` | `units.update` | `units.delete` |\n| **Userfavorites** | `userfavorites.read` | - | - | - |\n| **Vouchercategories** | `vouchercategories.read` | - | - | - |\n| **Vouchercustomergroups** | `vouchercustomergroups.read` | - | - | - |\n| **Vouchermanufactors** | `vouchermanufactors.read` | - | - | - |\n| **Voucherredemptions** | `voucherredemptions.read` | - | - | - |\n| **Vouchers** | `vouchers.read` | - | - | - |\n| **Vouchervariations** | `vouchervariations.read` | - | - | - |\n| **Webhooks** | `webhooks.read` | `webhooks.create` | `webhooks.update` | `webhooks.delete` |\n| **Wishlists** | `wishlists.read` | - | - | - |\n\n</details>\n\n\n            \n> **Hinweis:**\n> Die verf\u00fcgbaren Scopes werden automatisch vom System generiert und k\u00f6nnen je nach H\u00e4ndlerkonfiguration variieren.\n            \n---\n            \n### \ud83e\udde9 **API-Struktur**\n            \n- **Public Endpoints:** Keine Authentifizierung erforderlich\n  \u2192 `/api/v2/public/...`\n            \n- **Private Endpoints:** OAuth2-Authentifizierung erforderlich\n  \u2192 `/api/v2/private/...`\n            \n---\n            \nViel Erfolg beim Integrieren! \ud83d\ude80"
    },
    "servers": [
        {
            "url": "https://www.fnw-apt.de/api/v2",
            "description": "Private + Public API apt-shop www.fnw-apt.de (www.fnw-apt.de)"
        }
    ],
    "components": {
        "securitySchemes": {
            "BearerAuth": {
                "type": "http",
                "scheme": "bearer",
                "bearerFormat": "JWT"
            },
            "OAuth2": {
                "type": "oauth2",
                "flows": {
                    "clientCredentials": {
                        "tokenUrl": "https://www.fnw-apt.de/api/v2/oauth/token",
                        "scopes": {
                            "affiliates.read": "Lesezugriff auf Affiliates",
                            "affiliates.create": "Erstellen neuer Affiliates",
                            "affiliates.update": "Bearbeiten bestehender Affiliates",
                            "affiliates.delete": "L\u00f6schen von Affiliates",
                            "availabilities.read": "Lesezugriff auf Availabilities",
                            "availabilities.create": "Erstellen neuer Availabilities",
                            "availabilities.update": "Bearbeiten bestehender Availabilities",
                            "availabilities.delete": "L\u00f6schen von Availabilities",
                            "baskets.read": "Lesezugriff auf Baskets",
                            "baskets.create": "Erstellen neuer Baskets",
                            "baskets.update": "Bearbeiten bestehender Baskets",
                            "baskets.delete": "L\u00f6schen von Baskets",
                            "bills.read": "Lesezugriff auf Bills",
                            "bills.create": "Erstellen neuer Bills",
                            "cashmarketings.read": "Lesezugriff auf Cashmarketings",
                            "cashmarketings.create": "Erstellen neuer Cashmarketings",
                            "cashmarketings.update": "Bearbeiten bestehender Cashmarketings",
                            "cashmarketings.delete": "L\u00f6schen von Cashmarketings",
                            "cashstores.read": "Lesezugriff auf Cashstores",
                            "categories.read": "Lesezugriff auf Categories",
                            "categoryattributeassignments.read": "Lesezugriff auf Categoryattributeassignments",
                            "categoryattributeassignments.create": "Erstellen neuer Categoryattributeassignments",
                            "categoryattributeassignments.delete": "L\u00f6schen von Categoryattributeassignments",
                            "categoryvariationgroupassignments.read": "Lesezugriff auf Categoryvariationgroupassignments",
                            "categoryvariationgroupassignments.create": "Erstellen neuer Categoryvariationgroupassignments",
                            "categoryvariationgroupassignments.delete": "L\u00f6schen von Categoryvariationgroupassignments",
                            "clickcollecttermins.read": "Lesezugriff auf Clickcollecttermins",
                            "contactforms.read": "Lesezugriff auf Contactforms",
                            "contactforms.create": "Erstellen neuer Contactforms",
                            "contactforms.update": "Bearbeiten bestehender Contactforms",
                            "contactforms.delete": "L\u00f6schen von Contactforms",
                            "content.read": "Lesezugriff auf Content",
                            "content.create": "Erstellen neuer Content",
                            "content.update": "Bearbeiten bestehender Content",
                            "content.delete": "L\u00f6schen von Content",
                            "contentlines.read": "Lesezugriff auf Contentlines",
                            "contentlines.create": "Erstellen neuer Contentlines",
                            "contentlines.update": "Bearbeiten bestehender Contentlines",
                            "contentlines.delete": "L\u00f6schen von Contentlines",
                            "contentmodules.read": "Lesezugriff auf Contentmodules",
                            "contentmodules.create": "Erstellen neuer Contentmodules",
                            "contentmodules.update": "Bearbeiten bestehender Contentmodules",
                            "contentmodules.delete": "L\u00f6schen von Contentmodules",
                            "contentrows.read": "Lesezugriff auf Contentrows",
                            "contentrows.create": "Erstellen neuer Contentrows",
                            "contentrows.update": "Bearbeiten bestehender Contentrows",
                            "contentrows.delete": "L\u00f6schen von Contentrows",
                            "counterarchives.read": "Lesezugriff auf Counterarchives",
                            "countries.read": "Lesezugriff auf Countries",
                            "countrystates.read": "Lesezugriff auf Countrystates",
                            "countrystates.create": "Erstellen neuer Countrystates",
                            "countrystates.update": "Bearbeiten bestehender Countrystates",
                            "countrystates.delete": "L\u00f6schen von Countrystates",
                            "currencies.read": "Lesezugriff auf Currencies",
                            "currencies.create": "Erstellen neuer Currencies",
                            "currencies.update": "Bearbeiten bestehender Currencies",
                            "currencies.delete": "L\u00f6schen von Currencies",
                            "custgroupdiscounts.read": "Lesezugriff auf Custgroupdiscounts",
                            "custgroupdiscounts.create": "Erstellen neuer Custgroupdiscounts",
                            "custgroupdiscounts.update": "Bearbeiten bestehender Custgroupdiscounts",
                            "custgroupdiscounts.delete": "L\u00f6schen von Custgroupdiscounts",
                            "customergroups.read": "Lesezugriff auf Customergroups",
                            "customergroups.create": "Erstellen neuer Customergroups",
                            "customergroups.update": "Bearbeiten bestehender Customergroups",
                            "customergroups.delete": "L\u00f6schen von Customergroups",
                            "customers.read": "Lesezugriff auf Customers",
                            "customers.create": "Erstellen neuer Customers",
                            "customers.update": "Bearbeiten bestehender Customers",
                            "customers.delete": "L\u00f6schen von Customers",
                            "deliverynotes.read": "Lesezugriff auf Deliverynotes",
                            "depots.read": "Lesezugriff auf Depots",
                            "depots.create": "Erstellen neuer Depots",
                            "depots.update": "Bearbeiten bestehender Depots",
                            "depots.delete": "L\u00f6schen von Depots",
                            "discountgroupcustomergroups.read": "Lesezugriff auf Discountgroupcustomergroups",
                            "discountgroupcustomergroups.create": "Erstellen neuer Discountgroupcustomergroups",
                            "discountgroupcustomergroups.update": "Bearbeiten bestehender Discountgroupcustomergroups",
                            "discountgroupcustomergroups.delete": "L\u00f6schen von Discountgroupcustomergroups",
                            "discountgroups.read": "Lesezugriff auf Discountgroups",
                            "discountgroups.create": "Erstellen neuer Discountgroups",
                            "discountgroups.update": "Bearbeiten bestehender Discountgroups",
                            "discountgroups.delete": "L\u00f6schen von Discountgroups",
                            "dropshippers.read": "Lesezugriff auf Dropshippers",
                            "dropshippers.create": "Erstellen neuer Dropshippers",
                            "dropshippers.update": "Bearbeiten bestehender Dropshippers",
                            "dropshippers.delete": "L\u00f6schen von Dropshippers",
                            "emailblacklist.read": "Lesezugriff auf Emailblacklist",
                            "emailblacklist.create": "Erstellen neuer Emailblacklist",
                            "emailblacklist.update": "Bearbeiten bestehender Emailblacklist",
                            "emailblacklist.delete": "L\u00f6schen von Emailblacklist",
                            "emailtemplates.read": "Lesezugriff auf Emailtemplates",
                            "emailtemplates.update": "Bearbeiten bestehender Emailtemplates",
                            "faq.read": "Lesezugriff auf Faq",
                            "faq.create": "Erstellen neuer Faq",
                            "faq.update": "Bearbeiten bestehender Faq",
                            "faq.delete": "L\u00f6schen von Faq",
                            "firmmultishops.read": "Lesezugriff auf Firmmultishops",
                            "inventories.read": "Lesezugriff auf Inventories",
                            "languages.read": "Lesezugriff auf Languages",
                            "manufactors.read": "Lesezugriff auf Manufactors",
                            "manufactors.create": "Erstellen neuer Manufactors",
                            "manufactors.update": "Bearbeiten bestehender Manufactors",
                            "manufactors.delete": "L\u00f6schen von Manufactors",
                            "multishopcustomergroups.read": "Lesezugriff auf Multishopcustomergroups",
                            "multishopcustomergroups.create": "Erstellen neuer Multishopcustomergroups",
                            "multishopcustomergroups.delete": "L\u00f6schen von Multishopcustomergroups",
                            "multishopdomains.read": "Lesezugriff auf Multishopdomains",
                            "multishopdomains.create": "Erstellen neuer Multishopdomains",
                            "multishopdomains.delete": "L\u00f6schen von Multishopdomains",
                            "multishops.read": "Lesezugriff auf Multishops",
                            "news.read": "Lesezugriff auf News",
                            "news.create": "Erstellen neuer News",
                            "news.update": "Bearbeiten bestehender News",
                            "news.delete": "L\u00f6schen von News",
                            "newsletterrecipients.read": "Lesezugriff auf Newsletterrecipients",
                            "newsletterrecipients.create": "Erstellen neuer Newsletterrecipients",
                            "newsletterrecipients.update": "Bearbeiten bestehender Newsletterrecipients",
                            "newsletterrecipients.delete": "L\u00f6schen von Newsletterrecipients",
                            "newsletters.read": "Lesezugriff auf Newsletters",
                            "newsletters.create": "Erstellen neuer Newsletters",
                            "newsletters.update": "Bearbeiten bestehender Newsletters",
                            "newsletters.delete": "L\u00f6schen von Newsletters",
                            "newslettertemplates.read": "Lesezugriff auf Newslettertemplates",
                            "newslettertemplates.create": "Erstellen neuer Newslettertemplates",
                            "newslettertemplates.update": "Bearbeiten bestehender Newslettertemplates",
                            "newslettertemplates.delete": "L\u00f6schen von Newslettertemplates",
                            "orderhistories.read": "Lesezugriff auf Orderhistories",
                            "orders.read": "Lesezugriff auf Orders",
                            "orders.create": "Erstellen neuer Orders",
                            "orders.update": "Bearbeiten bestehender Orders",
                            "ordershippinglists.read": "Lesezugriff auf Ordershippinglists",
                            "orderstatusemails.read": "Lesezugriff auf Orderstatusemails",
                            "orderstatusemails.create": "Erstellen neuer Orderstatusemails",
                            "orderstatusemails.update": "Bearbeiten bestehender Orderstatusemails",
                            "orderstatusemails.delete": "L\u00f6schen von Orderstatusemails",
                            "orderstatuses.read": "Lesezugriff auf Orderstatuses",
                            "packagedimensions.read": "Lesezugriff auf Packagedimensions",
                            "packagedimensions.create": "Erstellen neuer Packagedimensions",
                            "packagedimensions.update": "Bearbeiten bestehender Packagedimensions",
                            "packagedimensions.delete": "L\u00f6schen von Packagedimensions",
                            "packagings.read": "Lesezugriff auf Packagings",
                            "packagings.create": "Erstellen neuer Packagings",
                            "packagings.update": "Bearbeiten bestehender Packagings",
                            "packagings.delete": "L\u00f6schen von Packagings",
                            "page404.read": "Lesezugriff auf Page404",
                            "page404.delete": "L\u00f6schen von Page404",
                            "paymenttypes.read": "Lesezugriff auf Paymenttypes",
                            "pricegroups.read": "Lesezugriff auf Pricegroups",
                            "pricegroups.create": "Erstellen neuer Pricegroups",
                            "pricegroups.update": "Bearbeiten bestehender Pricegroups",
                            "pricegroups.delete": "L\u00f6schen von Pricegroups",
                            "printtemplates.read": "Lesezugriff auf Printtemplates",
                            "printtemplates.create": "Erstellen neuer Printtemplates",
                            "printtemplates.update": "Bearbeiten bestehender Printtemplates",
                            "productattributedefinitions.read": "Lesezugriff auf Productattributedefinitions",
                            "productattributedefinitions.create": "Erstellen neuer Productattributedefinitions",
                            "productattributedefinitions.update": "Bearbeiten bestehender Productattributedefinitions",
                            "productattributedefinitions.delete": "L\u00f6schen von Productattributedefinitions",
                            "productattributegroupassignments.read": "Lesezugriff auf Productattributegroupassignments",
                            "productattributegroupassignments.create": "Erstellen neuer Productattributegroupassignments",
                            "productattributegroupassignments.update": "Bearbeiten bestehender Productattributegroupassignments",
                            "productattributegroupassignments.delete": "L\u00f6schen von Productattributegroupassignments",
                            "productattributegroups.read": "Lesezugriff auf Productattributegroups",
                            "productattributegroups.create": "Erstellen neuer Productattributegroups",
                            "productattributegroups.update": "Bearbeiten bestehender Productattributegroups",
                            "productattributegroups.delete": "L\u00f6schen von Productattributegroups",
                            "productattributes.read": "Lesezugriff auf Productattributes",
                            "productattributes.create": "Erstellen neuer Productattributes",
                            "productattributes.delete": "L\u00f6schen von Productattributes",
                            "productattributevalues.read": "Lesezugriff auf Productattributevalues",
                            "productattributevalues.create": "Erstellen neuer Productattributevalues",
                            "productattributevalues.update": "Bearbeiten bestehender Productattributevalues",
                            "productattributevalues.delete": "L\u00f6schen von Productattributevalues",
                            "productbulletpoints.read": "Lesezugriff auf Productbulletpoints",
                            "productbulletpoints.create": "Erstellen neuer Productbulletpoints",
                            "productbulletpoints.update": "Bearbeiten bestehender Productbulletpoints",
                            "productbulletpoints.delete": "L\u00f6schen von Productbulletpoints",
                            "productbundles.read": "Lesezugriff auf Productbundles",
                            "productcategoryassignments.read": "Lesezugriff auf Productcategoryassignments",
                            "productcategoryassignments.create": "Erstellen neuer Productcategoryassignments",
                            "productcategoryassignments.delete": "L\u00f6schen von Productcategoryassignments",
                            "productcountryexclusions.read": "Lesezugriff auf Productcountryexclusions",
                            "productcountryexclusions.create": "Erstellen neuer Productcountryexclusions",
                            "productcountryexclusions.delete": "L\u00f6schen von Productcountryexclusions",
                            "productdownloads.read": "Lesezugriff auf Productdownloads",
                            "productfaqs.read": "Lesezugriff auf Productfaqs",
                            "productfaqs.create": "Erstellen neuer Productfaqs",
                            "productfaqs.update": "Bearbeiten bestehender Productfaqs",
                            "productfaqs.delete": "L\u00f6schen von Productfaqs",
                            "productfreetexts.read": "Lesezugriff auf Productfreetexts",
                            "productimages.read": "Lesezugriff auf Productimages",
                            "productimages.create": "Erstellen neuer Productimages",
                            "productimages.update": "Bearbeiten bestehender Productimages",
                            "productimages.delete": "L\u00f6schen von Productimages",
                            "productlicensekeys.read": "Lesezugriff auf Productlicensekeys",
                            "productnotifications.read": "Lesezugriff auf Productnotifications",
                            "productnutrition.read": "Lesezugriff auf Productnutrition",
                            "productorderfieldgroupassignments.read": "Lesezugriff auf Productorderfieldgroupassignments",
                            "productorderfieldgroupassignments.create": "Erstellen neuer Productorderfieldgroupassignments",
                            "productorderfieldgroupassignments.update": "Bearbeiten bestehender Productorderfieldgroupassignments",
                            "productorderfieldgroupassignments.delete": "L\u00f6schen von Productorderfieldgroupassignments",
                            "productorderfieldgroups.read": "Lesezugriff auf Productorderfieldgroups",
                            "productorderfieldgroups.create": "Erstellen neuer Productorderfieldgroups",
                            "productorderfieldgroups.update": "Bearbeiten bestehender Productorderfieldgroups",
                            "productorderfieldgroups.delete": "L\u00f6schen von Productorderfieldgroups",
                            "productorderfields.read": "Lesezugriff auf Productorderfields",
                            "productpaymentexclusions.read": "Lesezugriff auf Productpaymentexclusions",
                            "productpaymentexclusions.create": "Erstellen neuer Productpaymentexclusions",
                            "productpaymentexclusions.delete": "L\u00f6schen von Productpaymentexclusions",
                            "productpresenters.read": "Lesezugriff auf Productpresenters",
                            "productpresenters.create": "Erstellen neuer Productpresenters",
                            "productpresenters.update": "Bearbeiten bestehender Productpresenters",
                            "productpresenters.delete": "L\u00f6schen von Productpresenters",
                            "productratings.read": "Lesezugriff auf Productratings",
                            "products.create": "Erstellen neuer Products",
                            "products.read": "Lesezugriff auf Products",
                            "products.update": "Bearbeiten bestehender Products",
                            "productshippingmethods.read": "Lesezugriff auf Productshippingmethods",
                            "productshippingmethods.create": "Erstellen neuer Productshippingmethods",
                            "productshippingmethods.delete": "L\u00f6schen von Productshippingmethods",
                            "productspricehistory.read": "Lesezugriff auf Productspricehistory",
                            "productsstockhistory.read": "Lesezugriff auf Productsstockhistory",
                            "productvariationgroups.read": "Lesezugriff auf Productvariationgroups",
                            "productvariationgroups.create": "Erstellen neuer Productvariationgroups",
                            "productvariationgroups.update": "Bearbeiten bestehender Productvariationgroups",
                            "productvariationgroups.delete": "L\u00f6schen von Productvariationgroups",
                            "productvariationitems.read": "Lesezugriff auf Productvariationitems",
                            "productvariationitems.create": "Erstellen neuer Productvariationitems",
                            "productvariationitems.update": "Bearbeiten bestehender Productvariationitems",
                            "productvariationitems.delete": "L\u00f6schen von Productvariationitems",
                            "productviewtabs.read": "Lesezugriff auf Productviewtabs",
                            "productvisibility.read": "Lesezugriff auf Productvisibility",
                            "productvisibility.create": "Erstellen neuer Productvisibility",
                            "productvisibility.delete": "L\u00f6schen von Productvisibility",
                            "promotions.read": "Lesezugriff auf Promotions",
                            "protectedshops.read": "Lesezugriff auf Protectedshops",
                            "redirects.read": "Lesezugriff auf Redirects",
                            "redirects.create": "Erstellen neuer Redirects",
                            "redirects.update": "Bearbeiten bestehender Redirects",
                            "redirects.delete": "L\u00f6schen von Redirects",
                            "referrers.read": "Lesezugriff auf Referrers",
                            "salutations.read": "Lesezugriff auf Salutations",
                            "salutations.create": "Erstellen neuer Salutations",
                            "salutations.update": "Bearbeiten bestehender Salutations",
                            "salutations.delete": "L\u00f6schen von Salutations",
                            "searchstatslogs.read": "Lesezugriff auf Searchstatslogs",
                            "securityiprules.read": "Lesezugriff auf Securityiprules",
                            "securityiprules.create": "Erstellen neuer Securityiprules",
                            "securityiprules.update": "Bearbeiten bestehender Securityiprules",
                            "securityiprules.delete": "L\u00f6schen von Securityiprules",
                            "shippinggroups.read": "Lesezugriff auf Shippinggroups",
                            "shippinglabels.read": "Lesezugriff auf Shippinglabels",
                            "shippinglists.read": "Lesezugriff auf Shippinglists",
                            "shippingtypes.read": "Lesezugriff auf Shippingtypes",
                            "shippingzones.read": "Lesezugriff auf Shippingzones",
                            "socialassets.create": "Erstellen neuer Socialassets",
                            "socialinsights.read": "Lesezugriff auf Socialinsights",
                            "socialposts.read": "Lesezugriff auf Socialposts",
                            "socialposts.create": "Erstellen neuer Socialposts",
                            "socialposts.update": "Bearbeiten bestehender Socialposts",
                            "socialposts.delete": "L\u00f6schen von Socialposts",
                            "socialtargets.read": "Lesezugriff auf Socialtargets",
                            "socialvideos.create": "Erstellen neuer Socialvideos",
                            "statictexts.read": "Lesezugriff auf Statictexts",
                            "statictexts.update": "Bearbeiten bestehender Statictexts",
                            "statsgroups.read": "Lesezugriff auf Statsgroups",
                            "statsgroups.create": "Erstellen neuer Statsgroups",
                            "statsgroups.update": "Bearbeiten bestehender Statsgroups",
                            "statsgroups.delete": "L\u00f6schen von Statsgroups",
                            "stockbookings.read": "Lesezugriff auf Stockbookings",
                            "subdomains.read": "Lesezugriff auf Subdomains",
                            "subdomains.create": "Erstellen neuer Subdomains",
                            "subdomains.update": "Bearbeiten bestehender Subdomains",
                            "subdomains.delete": "L\u00f6schen von Subdomains",
                            "subscriptionintervals.read": "Lesezugriff auf Subscriptionintervals",
                            "subscriptionintervals.create": "Erstellen neuer Subscriptionintervals",
                            "subscriptionintervals.update": "Bearbeiten bestehender Subscriptionintervals",
                            "subscriptionorders.read": "Lesezugriff auf Subscriptionorders",
                            "subscriptionplans.read": "Lesezugriff auf Subscriptionplans",
                            "subscriptionplans.create": "Erstellen neuer Subscriptionplans",
                            "subscriptionplans.update": "Bearbeiten bestehender Subscriptionplans",
                            "supplierorders.read": "Lesezugriff auf Supplierorders",
                            "suppliers.read": "Lesezugriff auf Suppliers",
                            "suppliers.create": "Erstellen neuer Suppliers",
                            "suppliers.update": "Bearbeiten bestehender Suppliers",
                            "suppliers.delete": "L\u00f6schen von Suppliers",
                            "systememails.read": "Lesezugriff auf Systememails",
                            "systememails.delete": "L\u00f6schen von Systememails",
                            "tablecolumnsetups.read": "Lesezugriff auf Tablecolumnsetups",
                            "taxes.read": "Lesezugriff auf Taxes",
                            "taxes.create": "Erstellen neuer Taxes",
                            "taxes.update": "Bearbeiten bestehender Taxes",
                            "taxes.delete": "L\u00f6schen von Taxes",
                            "textsnippets.read": "Lesezugriff auf Textsnippets",
                            "textsnippets.create": "Erstellen neuer Textsnippets",
                            "textsnippets.update": "Bearbeiten bestehender Textsnippets",
                            "textsnippets.delete": "L\u00f6schen von Textsnippets",
                            "themeareaparams.read": "Lesezugriff auf Themeareaparams",
                            "themeareaparams.update": "Bearbeiten bestehender Themeareaparams",
                            "themeareas.read": "Lesezugriff auf Themeareas",
                            "themeareas.update": "Bearbeiten bestehender Themeareas",
                            "themeareatpls.read": "Lesezugriff auf Themeareatpls",
                            "themeareatpls.update": "Bearbeiten bestehender Themeareatpls",
                            "themecontentlayouts.read": "Lesezugriff auf Themecontentlayouts",
                            "themecontentlayoutsides.read": "Lesezugriff auf Themecontentlayoutsides",
                            "themejsfiles.read": "Lesezugriff auf Themejsfiles",
                            "themejsfiles.update": "Bearbeiten bestehender Themejsfiles",
                            "themejsfileversions.read": "Lesezugriff auf Themejsfileversions",
                            "themejsfileversions.update": "Bearbeiten bestehender Themejsfileversions",
                            "themes.read": "Lesezugriff auf Themes",
                            "themes.update": "Bearbeiten bestehender Themes",
                            "trustedshops.read": "Lesezugriff auf Trustedshops",
                            "trustedshops.create": "Erstellen neuer Trustedshops",
                            "trustedshops.update": "Bearbeiten bestehender Trustedshops",
                            "trustedshops.delete": "L\u00f6schen von Trustedshops",
                            "units.read": "Lesezugriff auf Units",
                            "units.create": "Erstellen neuer Units",
                            "units.update": "Bearbeiten bestehender Units",
                            "units.delete": "L\u00f6schen von Units",
                            "userfavorites.read": "Lesezugriff auf Userfavorites",
                            "vouchercategories.read": "Lesezugriff auf Vouchercategories",
                            "vouchercustomergroups.read": "Lesezugriff auf Vouchercustomergroups",
                            "vouchermanufactors.read": "Lesezugriff auf Vouchermanufactors",
                            "voucherredemptions.read": "Lesezugriff auf Voucherredemptions",
                            "vouchers.read": "Lesezugriff auf Vouchers",
                            "vouchervariations.read": "Lesezugriff auf Vouchervariations",
                            "webhooks.read": "Lesezugriff auf Webhooks",
                            "webhooks.create": "Erstellen neuer Webhooks",
                            "webhooks.update": "Bearbeiten bestehender Webhooks",
                            "webhooks.delete": "L\u00f6schen von Webhooks",
                            "wishlists.read": "Lesezugriff auf Wishlists"
                        }
                    }
                }
            }
        },
        "schemas": {
            "ApiResponse": {
                "type": "object",
                "properties": {
                    "status": {
                        "type": "string",
                        "enum": [
                            "ok",
                            "error"
                        ],
                        "description": "Status der Antwort"
                    },
                    "data": {
                        "type": "object",
                        "description": "Datenobjekt bei Erfolg. Struktur abh\u00e4ngig vom Endpoint."
                    },
                    "message": {
                        "type": "string",
                        "description": "Fehlermeldung, falls \"status\" = \"error\""
                    },
                    "total": {
                        "type": "integer",
                        "description": "ggf die maximale Anzahl der abgefragten Datens\u00e4tze unabh\u00e4ngig vom limit"
                    },
                    "limit": {
                        "type": "integer",
                        "description": "die maximale Anzahl von Zeilen an, die zur\u00fcckgegeben werden soll"
                    },
                    "offset": {
                        "type": "integer",
                        "description": "Anzahl der Zeilen, die \u00fcbersprungen werden"
                    }
                },
                "required": [
                    "status"
                ]
            }
        }
    },
    "paths": {
        "/public/baskets/{id}": {
            "get": {
                "tags": [
                    "baskets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "string"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "basketitem_id": {
                                                        "type": "integer"
                                                    },
                                                    "sku": {
                                                        "type": "string"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "quantity": {
                                                        "type": "number",
                                                        "format": "float"
                                                    }
                                                }
                                            }
                                        },
                                        "item_count": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "id": "4b6307fd457642a98523df4e00e93e1c",
                                    "location": "https://domain.de/api/v2/public/baskets/4b6307fd457642a98523df4e00e93e1c",
                                    "items": [
                                        {
                                            "basketitem_id": 123,
                                            "sku": "SHIRT-BLAU-L",
                                            "name": "Shirt blau L",
                                            "quantity": 2
                                        }
                                    ],
                                    "item_count": 1
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": true,
                "summary": "Eigenen \u00f6ffentlichen Warenkorb abrufen.",
                "description": "Liefert den Inhalt des Warenkorbs. Erfordert `X-Basket-Token` oder `Authorization: Basket <token>`.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetBasketsDetailPublic",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Warenkorb-ID"
                    },
                    {
                        "name": "X-Basket-Token",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Basket-Token; alternativ `Authorization: Basket <token>` verwenden"
                    }
                ],
                "security": [],
                "x-oauth-scopes": [],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "baskets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "204": {
                        "description": "Erfolgreiche Antwort"
                    }
                },
                "x-access": "public",
                "x-cors-enabled": true,
                "summary": "Eigenen Warenkorb oder eine Position l\u00f6schen.",
                "description": "L\u00f6scht den Warenkorb vollst\u00e4ndig. Mit `basketitem_id` wird nur diese Position gel\u00f6scht. Erfordert das Basket-Token und unterst\u00fctzt `Idempotency-Key`.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteBasketsDetailPublic",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Warenkorb-ID"
                    },
                    {
                        "name": "basketitem_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Optionale ID der zu l\u00f6schenden Warenkorbposition"
                    },
                    {
                        "name": "X-Basket-Token",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Basket-Token; alternativ `Authorization: Basket <token>` verwenden"
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Optionaler, retry-sicherer Schl\u00fcssel mit 8 bis 128 URL-sicheren Zeichen"
                    }
                ],
                "security": [],
                "x-oauth-scopes": [],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/public/baskets/{id}/basketurl": {
            "get": {
                "tags": [
                    "baskets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "string",
                                            "description": "Id (Session des Warenekorbs",
                                            "example": "uizqwe78qwe8qw7e68w7qq9w8e"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        },
                                        "basket_return_url": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "URL zum Warenkorb",
                                            "example": "123"
                                        },
                                        "expires_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "description": "Ablaufzeitpunkt der kurzlebigen \u00dcbergabe-URL"
                                        }
                                    }
                                },
                                "example": {
                                    "id": "uzwqeiuqwze87qwe687",
                                    "location": "https://domain.de/api/v2/endpoint/123",
                                    "basket_return_url": "https://domain.de/basket?basketId=iquwzeiwqziqwuez&basketHash=kurzlebige-checkout-capability",
                                    "expires_at": "2026-08-13T16:30:00+02:00"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": true,
                "summary": "\u00dcbergabe-URL zum Warenkorb erzeugen.",
                "description": "Erzeugt eine kurzlebige URL, \u00fcber die der Benutzer den vorbereiteten Warenkorb im Shop \u00fcbernimmt. Erfordert das Basket-Token.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetBasketsBasketurlPublic",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Warenkorb-ID"
                    },
                    {
                        "name": "X-Basket-Token",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Basket-Token; alternativ `Authorization: Basket <token>` verwenden"
                    }
                ],
                "security": [],
                "x-oauth-scopes": [],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/public/baskets": {
            "post": {
                "tags": [
                    "baskets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "201": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "string",
                                            "description": "Warenkorb-ID"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "basket_token": {
                                            "type": "string",
                                            "description": "Nur einmal ausgegebener Besitznachweis f\u00fcr Folgeoperationen."
                                        },
                                        "token_type": {
                                            "type": "string",
                                            "example": "Basket"
                                        },
                                        "expires_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "added_items": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "item_count": {
                                            "type": "integer"
                                        },
                                        "basket_return_url": {
                                            "type": "string",
                                            "format": "uri"
                                        }
                                    },
                                    "required": [
                                        "id",
                                        "basket_token",
                                        "token_type",
                                        "expires_at"
                                    ]
                                },
                                "example": {
                                    "id": "4b6307fd457642a98523df4e00e93e1c",
                                    "location": "https://domain.de/api/v2/public/baskets/4b6307fd457642a98523df4e00e93e1c",
                                    "basket_token": "Yv4mLk5jBB8WqI6jheYPddmRC0Wsw4b7Ji_UfDqw9iM",
                                    "token_type": "Basket",
                                    "expires_at": "2026-08-13T16:30:00+02:00",
                                    "item_count": 2,
                                    "basket_return_url": "https://domain.de/basket?basketId=4b6307fd457642a98523df4e00e93e1c&basketHash=checkout-capability"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": true,
                "summary": "\u00d6ffentlichen Warenkorb erstellen.",
                "description": "Erstellt einen kurzlebigen Warenkorb. Optional k\u00f6nnen bis zu 50 konkrete Varianten per SKU und Menge direkt \u00fcbergeben werden. Die Antwort enth\u00e4lt das nur einmal ausgegebene Basket-Token. Wiederholungen k\u00f6nnen mit `Idempotency-Key` sicher ausgef\u00fchrt werden.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostBasketsPublic",
                "parameters": [
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Optionaler, retry-sicherer Schl\u00fcssel mit 8 bis 128 URL-sicheren Zeichen"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "items": {
                                        "type": "array",
                                        "maxItems": 50,
                                        "description": "Optionale Liste konkreter, aktivierter Produktvarianten.",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "sku": {
                                                    "type": "string",
                                                    "description": "Artikelnummer der konkreten Produktvariante."
                                                },
                                                "quantity": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "minimum": 0.001,
                                                    "maximum": 9999,
                                                    "default": 1
                                                }
                                            },
                                            "required": [
                                                "sku"
                                            ]
                                        }
                                    },
                                    "include_checkout_url": {
                                        "type": "boolean",
                                        "default": false,
                                        "description": "Gibt direkt eine kurzlebige \u00dcbergabe-URL zum Shop zur\u00fcck."
                                    },
                                    "idempotency_key": {
                                        "type": "string",
                                        "minLength": 8,
                                        "maxLength": 128,
                                        "description": "Alternative zum HTTP-Header Idempotency-Key."
                                    }
                                }
                            },
                            "example": {
                                "items": [
                                    {
                                        "sku": "SHIRT-BLAU-L",
                                        "quantity": 2
                                    },
                                    {
                                        "sku": "HOSE-32",
                                        "quantity": 1
                                    }
                                ],
                                "include_checkout_url": true
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": [],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/public/baskets/{id}/additem": {
            "post": {
                "tags": [
                    "baskets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "string",
                                            "description": "Id (Session des Warenekorbs",
                                            "example": "uizqwe78qwe8qw7e68w7qq9w8e"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        },
                                        "basketitem_id": {
                                            "type": "integer",
                                            "description": "Id des Warenkorbelements",
                                            "example": "123"
                                        },
                                        "quantity": {
                                            "type": "number",
                                            "description": "\u00dcbernommene Menge des Shopprodukts",
                                            "example": 1
                                        },
                                        "order_fields": {
                                            "type": "array",
                                            "description": "Gespeicherte Bestellmerkmale des Shopprodukts",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "order_field_id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "value": {
                                                        "type": "string"
                                                    },
                                                    "display_value": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": "uzwqeiuqwze87qwe687",
                                    "location": "https://domain.de/api/v2/endpoint/123",
                                    "basketitem_id": 123,
                                    "quantity": 1,
                                    "order_fields": [
                                        {
                                            "order_field_id": 123,
                                            "name": "Hauptdomain",
                                            "value": "fulex-apt.de",
                                            "display_value": "fulex-apt.de"
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": true,
                "summary": "Eine konkrete Produktvariante hinzuf\u00fcgen.",
                "description": "F\u00fcgt eine aktivierte Shopvariante anhand ihrer SKU hinzu. Erfordert das Basket-Token. `Idempotency-Key` verhindert doppelte Positionen bei Wiederholungen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostBasketsAdditemPublic",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Warenkorb-ID"
                    },
                    {
                        "name": "X-Basket-Token",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Basket-Token; alternativ `Authorization: Basket <token>` verwenden"
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Optionaler, retry-sicherer Schl\u00fcssel mit 8 bis 128 URL-sicheren Zeichen"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "sku": {
                                        "type": "string",
                                        "description": "Artikelnummer der konkreten, aktivierten Produktvariante."
                                    },
                                    "quantity": {
                                        "type": "number",
                                        "format": "float",
                                        "minimum": 0.001,
                                        "maximum": 9999,
                                        "default": 1
                                    },
                                    "idempotency_key": {
                                        "type": "string",
                                        "minLength": 8,
                                        "maxLength": 128,
                                        "description": "Alternative zum HTTP-Header Idempotency-Key."
                                    }
                                },
                                "required": [
                                    "sku"
                                ]
                            },
                            "example": {
                                "sku": "SHIRT-BLAU-L",
                                "quantity": 2
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": [],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/public/baskets/{id}/additems": {
            "post": {
                "tags": [
                    "baskets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "string"
                                        },
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "basketitem_id": {
                                                        "type": "integer"
                                                    },
                                                    "sku": {
                                                        "type": "string"
                                                    },
                                                    "quantity": {
                                                        "type": "number",
                                                        "format": "float"
                                                    },
                                                    "status": {
                                                        "type": "string",
                                                        "example": "added"
                                                    }
                                                }
                                            }
                                        },
                                        "item_count": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "id": "4b6307fd457642a98523df4e00e93e1c",
                                    "items": [
                                        {
                                            "basketitem_id": 123,
                                            "sku": "SHIRT-BLAU-L",
                                            "quantity": 2,
                                            "status": "added"
                                        },
                                        {
                                            "basketitem_id": 124,
                                            "sku": "HOSE-32",
                                            "quantity": 1,
                                            "status": "added"
                                        }
                                    ],
                                    "item_count": 2
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": true,
                "summary": "Mehrere konkrete Produktvarianten hinzuf\u00fcgen.",
                "description": "F\u00fcgt bis zu 50 aktivierte Shopvarianten anhand ihrer SKUs hinzu. Erfordert das Basket-Token und unterst\u00fctzt `Idempotency-Key`.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostBasketsAdditemsPublic",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Warenkorb-ID"
                    },
                    {
                        "name": "X-Basket-Token",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Basket-Token; alternativ `Authorization: Basket <token>` verwenden"
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Optionaler, retry-sicherer Schl\u00fcssel mit 8 bis 128 URL-sicheren Zeichen"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "items": {
                                        "type": "array",
                                        "minItems": 1,
                                        "maxItems": 50,
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "sku": {
                                                    "type": "string"
                                                },
                                                "quantity": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "minimum": 0.001,
                                                    "maximum": 9999,
                                                    "default": 1
                                                }
                                            },
                                            "required": [
                                                "sku"
                                            ]
                                        }
                                    },
                                    "idempotency_key": {
                                        "type": "string",
                                        "minLength": 8,
                                        "maxLength": 128,
                                        "description": "Alternative zum HTTP-Header Idempotency-Key."
                                    }
                                },
                                "required": [
                                    "items"
                                ]
                            },
                            "example": {
                                "items": [
                                    {
                                        "sku": "SHIRT-BLAU-L",
                                        "quantity": 2
                                    },
                                    {
                                        "sku": "HOSE-32",
                                        "quantity": 1
                                    }
                                ]
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": [],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/public/baskets/{id}/updateitem": {
            "put": {
                "tags": [
                    "baskets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "basketitem_id": {
                                            "type": "integer"
                                        },
                                        "quantity": {
                                            "type": "number",
                                            "format": "float"
                                        },
                                        "status": {
                                            "type": "string",
                                            "example": "updated"
                                        }
                                    }
                                },
                                "example": {
                                    "basketitem_id": 123,
                                    "quantity": 3,
                                    "status": "updated"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": true,
                "summary": "Menge einer Warenkorbposition aktualisieren.",
                "description": "Aktualisiert die Menge einer Position im eigenen \u00f6ffentlichen Warenkorb. Erfordert das Basket-Token und unterst\u00fctzt `Idempotency-Key`.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutBasketsUpdateitemPublic",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Warenkorb-ID"
                    },
                    {
                        "name": "X-Basket-Token",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Basket-Token; alternativ `Authorization: Basket <token>` verwenden"
                    },
                    {
                        "name": "Idempotency-Key",
                        "in": "header",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Optionaler, retry-sicherer Schl\u00fcssel mit 8 bis 128 URL-sicheren Zeichen"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "basketitem_id": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "quantity": {
                                        "type": "number",
                                        "format": "float",
                                        "minimum": 0.001,
                                        "maximum": 9999
                                    },
                                    "idempotency_key": {
                                        "type": "string",
                                        "minLength": 8,
                                        "maxLength": 128,
                                        "description": "Alternative zum HTTP-Header Idempotency-Key."
                                    }
                                },
                                "required": [
                                    "basketitem_id",
                                    "quantity"
                                ]
                            },
                            "example": {
                                "basketitem_id": 123,
                                "quantity": 3
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": [],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/public/products/{id}": {
            "get": {
                "tags": [
                    "products"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": [],
                                "examples": {
                                    "Kurzform": {
                                        "summary": "Standardausgabe (einfaches Produkt ohne Varianten)",
                                        "value": [
                                            {
                                                "@context": "https://schema.org/",
                                                "@type": "Product",
                                                "@id": "https://shop.example.com/api/v2/public/Products/1001",
                                                "name": "APT Coffee Mug",
                                                "description": "Keramik-Kaffeebecher mit APT-Logo, sp\u00fclmaschinenfest.",
                                                "image": [
                                                    "https://shop.example.com/images/products/1001.jpg"
                                                ],
                                                "brand": {
                                                    "@type": "Brand",
                                                    "name": "APT"
                                                },
                                                "category": "Geschirr > Becher",
                                                "offers": {
                                                    "@type": "Offer",
                                                    "priceCurrency": "EUR",
                                                    "price": 9.99,
                                                    "availability": "https://schema.org/InStock",
                                                    "url": "https://shop.example.com/products/1001"
                                                },
                                                "additionalProperty": [
                                                    {
                                                        "@type": "PropertyValue",
                                                        "name": "Material",
                                                        "value": "Keramik"
                                                    },
                                                    {
                                                        "@type": "PropertyValue",
                                                        "name": "Farbe",
                                                        "value": "Wei\u00df"
                                                    },
                                                    {
                                                        "@type": "PropertyValue",
                                                        "name": "Volumen",
                                                        "value": "300 ml"
                                                    }
                                                ]
                                            }
                                        ]
                                    },
                                    "Detailform": {
                                        "summary": "Produkt mit Varianten, Bewertungen und erweiterten Attributen",
                                        "value": [
                                            {
                                                "@context": "https://schema.org/",
                                                "@type": "Product",
                                                "@id": "https://shop.example.com/api/v2/public/Products/2001",
                                                "name": "APT Herren T-Shirt",
                                                "description": "Hochwertiges Baumwoll-T-Shirt mit APT-Logo in verschiedenen Farben und Gr\u00f6\u00dfen.",
                                                "image": [
                                                    "https://shop.example.com/images/products/2001_main.jpg"
                                                ],
                                                "brand": {
                                                    "@type": "Brand",
                                                    "name": "APT"
                                                },
                                                "category": "Bekleidung > Herren > T-Shirts",
                                                "hasVariant": [
                                                    {
                                                        "@type": "Product",
                                                        "name": "APT Herren T-Shirt Schwarz L",
                                                        "color": "Schwarz",
                                                        "size": "L",
                                                        "sku": "TSHIRT-BLACK-L",
                                                        "gtin": "4000000001234",
                                                        "offers": {
                                                            "@type": "Offer",
                                                            "priceCurrency": "EUR",
                                                            "price": 19.99,
                                                            "availability": "https://schema.org/InStock",
                                                            "url": "https://shop.example.com/products/2001?variant=black-l"
                                                        }
                                                    },
                                                    {
                                                        "@type": "Product",
                                                        "name": "APT Herren T-Shirt Wei\u00df M",
                                                        "color": "Wei\u00df",
                                                        "size": "M",
                                                        "sku": "TSHIRT-WHITE-M",
                                                        "gtin": "4000000001256",
                                                        "offers": {
                                                            "@type": "Offer",
                                                            "priceCurrency": "EUR",
                                                            "price": 18.99,
                                                            "availability": "https://schema.org/InStock",
                                                            "url": "https://shop.example.com/products/2001?variant=white-m"
                                                        }
                                                    }
                                                ],
                                                "offers": {
                                                    "@type": "AggregateOffer",
                                                    "lowPrice": 18.99,
                                                    "highPrice": 19.99,
                                                    "offerCount": 2,
                                                    "priceCurrency": "EUR"
                                                },
                                                "additionalProperty": [
                                                    {
                                                        "@type": "PropertyValue",
                                                        "name": "Material",
                                                        "value": "100% Baumwolle"
                                                    },
                                                    {
                                                        "@type": "PropertyValue",
                                                        "name": "Pflegehinweis",
                                                        "value": "Waschbar bei 30\u00b0C"
                                                    },
                                                    {
                                                        "@type": "PropertyValue",
                                                        "name": "Zielgruppe",
                                                        "value": "Herren"
                                                    },
                                                    {
                                                        "@type": "PropertyValue",
                                                        "name": "Schnitt",
                                                        "value": "Regular Fit"
                                                    },
                                                    {
                                                        "@type": "PropertyValue",
                                                        "name": "Nachhaltigkeit",
                                                        "value": "Bio-Baumwolle"
                                                    }
                                                ],
                                                "aggregateRating": {
                                                    "@type": "AggregateRating",
                                                    "ratingValue": 4.6,
                                                    "ratingCount": 89,
                                                    "bestRating": 5,
                                                    "worstRating": 1
                                                },
                                                "review": [
                                                    {
                                                        "@type": "Review",
                                                        "reviewRating": {
                                                            "@type": "Rating",
                                                            "ratingValue": 5
                                                        },
                                                        "author": {
                                                            "@type": "Person",
                                                            "name": "Max Mustermann"
                                                        },
                                                        "reviewBody": "Sehr gute Qualit\u00e4t, angenehm zu tragen."
                                                    },
                                                    {
                                                        "@type": "Review",
                                                        "reviewRating": {
                                                            "@type": "Rating",
                                                            "ratingValue": 4
                                                        },
                                                        "author": {
                                                            "@type": "Person",
                                                            "name": "Anna Beispiel"
                                                        },
                                                        "reviewBody": "Etwas gro\u00df geschnitten, aber tolle Stoffqualit\u00e4t."
                                                    }
                                                ],
                                                "manufacturer": {
                                                    "@type": "Organization",
                                                    "name": "APT-Ebusiness GmbH",
                                                    "url": "https://www.apt-shop.de",
                                                    "email": "info@apt-shop.de",
                                                    "telephone": "+49 123 456789"
                                                }
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": true,
                "summary": "Liefert \u00f6ffentliche Produktdaten in Schema.org Format.",
                "description": "Gibt ein einzelnes Produkt im Schema.org-kompatiblen JSON-LD-Format zur\u00fcck.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductsDetailPublic",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Produkt-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "products.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "products.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/affiliates": {
            "get": {
                "tags": [
                    "affiliates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Listenantwort fuer Affiliate-Trackingcodes.",
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "description": "ID des Multishops."
                                                    },
                                                    "new_customers_only": {
                                                        "type": "boolean",
                                                        "description": "Kennzeichen fuer Ausgabe nur bei Neukunden."
                                                    },
                                                    "code_on_bottom": {
                                                        "type": "integer",
                                                        "description": "Kennzeichen fuer Ausgabe am Seitenende."
                                                    },
                                                    "codeversion": {
                                                        "type": "integer",
                                                        "description": "Version des Tracking-Codes."
                                                    },
                                                    "code": {
                                                        "type": "string",
                                                        "description": "Code oder Scriptinhalt des Datensatzes."
                                                    },
                                                    "custgroup_ids": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "integer",
                                                            "description": "IDs der zugeordneten Kundengruppen."
                                                        },
                                                        "description": "IDs der zugeordneten Kundengruppen."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Gesamtanzahl der passenden Datensaetze."
                                                },
                                                "limit": {
                                                    "type": "integer",
                                                    "description": "Verwendetes Limit."
                                                },
                                                "offset": {
                                                    "type": "integer",
                                                    "description": "Verwendeter Offset."
                                                }
                                            },
                                            "description": "Metadaten zur Listenabfrage."
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Affiliate-Trackingcodes abrufen",
                "description": "Gibt Affiliate-Trackingcodes fuer die Bestellabschlussseite zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetAffiliatesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Trackingcode und Kundengruppen-IDs ausgeben."
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Name filtern."
                    },
                    {
                        "name": "multishop_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Multishop filtern, 0 steht fuer alle Shops."
                    },
                    {
                        "name": "code_on_bottom",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Ausgabeposition filtern."
                    },
                    {
                        "name": "codeversion",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Codeversion filtern."
                    },
                    {
                        "name": "new_customers_only",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Nach Neukunden-Kennzeichen filtern."
                    },
                    {
                        "name": "custgroup_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach zugeordneter Kundengruppe filtern."
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "affiliates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Detailantwort fuer einen Affiliate-Trackingcode.",
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "description": "Interne ID des Datensatzes."
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "description": "API-URL zur Detailansicht des Datensatzes."
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                },
                                                "multishop_id": {
                                                    "type": "integer",
                                                    "description": "ID des Multishops."
                                                },
                                                "new_customers_only": {
                                                    "type": "boolean",
                                                    "description": "Kennzeichen fuer Ausgabe nur bei Neukunden."
                                                },
                                                "code_on_bottom": {
                                                    "type": "integer",
                                                    "description": "Kennzeichen fuer Ausgabe am Seitenende."
                                                },
                                                "codeversion": {
                                                    "type": "integer",
                                                    "description": "Version des Tracking-Codes."
                                                },
                                                "code": {
                                                    "type": "string",
                                                    "description": "Code oder Scriptinhalt des Datensatzes."
                                                },
                                                "custgroup_ids": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "integer",
                                                        "description": "IDs der zugeordneten Kundengruppen."
                                                    },
                                                    "description": "IDs der zugeordneten Kundengruppen."
                                                }
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        }
                                    }
                                },
                                "example": {
                                    "name": "Sovendus",
                                    "code": "<script>...</script>",
                                    "multishop_id": 0,
                                    "new_customers_only": false,
                                    "code_on_bottom": 1,
                                    "codeversion": 1,
                                    "custgroup_ids": [
                                        1,
                                        2
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Affiliate-Trackingcode anlegen",
                "description": "Legt einen Affiliate-Trackingcode an.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostAffiliatesPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                    },
                                    "code": {
                                        "type": "string",
                                        "description": "Code oder Scriptinhalt des Datensatzes."
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "ID des Multishops."
                                    },
                                    "new_customers_only": {
                                        "type": "boolean",
                                        "description": "Kennzeichen fuer Ausgabe nur bei Neukunden."
                                    },
                                    "code_on_bottom": {
                                        "type": "integer",
                                        "description": "Kennzeichen fuer Ausgabe am Seitenende."
                                    },
                                    "codeversion": {
                                        "type": "integer",
                                        "description": "Version des Tracking-Codes."
                                    },
                                    "custgroup_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer",
                                            "description": "IDs der zugeordneten Kundengruppen."
                                        },
                                        "description": "IDs der zugeordneten Kundengruppen."
                                    }
                                },
                                "description": "Schema fuer Affiliates."
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/affiliates/{id}": {
            "get": {
                "tags": [
                    "affiliates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Detailantwort fuer einen Affiliate-Trackingcode.",
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "description": "Interne ID des Datensatzes."
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "description": "API-URL zur Detailansicht des Datensatzes."
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                },
                                                "multishop_id": {
                                                    "type": "integer",
                                                    "description": "ID des Multishops."
                                                },
                                                "new_customers_only": {
                                                    "type": "boolean",
                                                    "description": "Kennzeichen fuer Ausgabe nur bei Neukunden."
                                                },
                                                "code_on_bottom": {
                                                    "type": "integer",
                                                    "description": "Kennzeichen fuer Ausgabe am Seitenende."
                                                },
                                                "codeversion": {
                                                    "type": "integer",
                                                    "description": "Version des Tracking-Codes."
                                                },
                                                "code": {
                                                    "type": "string",
                                                    "description": "Code oder Scriptinhalt des Datensatzes."
                                                },
                                                "custgroup_ids": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "integer",
                                                        "description": "IDs der zugeordneten Kundengruppen."
                                                    },
                                                    "description": "IDs der zugeordneten Kundengruppen."
                                                }
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/private/affiliates/1",
                                            "name": "Sovendus",
                                            "multishop_id": 0,
                                            "new_customers_only": false,
                                            "code_on_bottom": 1,
                                            "codeversion": 1
                                        }
                                    ],
                                    "meta": {
                                        "total": 1,
                                        "limit": 100,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Affiliate-Trackingcode abrufen",
                "description": "Gibt einen einzelnen Affiliate-Trackingcode zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetAffiliatesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "affiliates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Detailantwort fuer einen Affiliate-Trackingcode.",
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "description": "Interne ID des Datensatzes."
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "description": "API-URL zur Detailansicht des Datensatzes."
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                },
                                                "multishop_id": {
                                                    "type": "integer",
                                                    "description": "ID des Multishops."
                                                },
                                                "new_customers_only": {
                                                    "type": "boolean",
                                                    "description": "Kennzeichen fuer Ausgabe nur bei Neukunden."
                                                },
                                                "code_on_bottom": {
                                                    "type": "integer",
                                                    "description": "Kennzeichen fuer Ausgabe am Seitenende."
                                                },
                                                "codeversion": {
                                                    "type": "integer",
                                                    "description": "Version des Tracking-Codes."
                                                },
                                                "code": {
                                                    "type": "string",
                                                    "description": "Code oder Scriptinhalt des Datensatzes."
                                                },
                                                "custgroup_ids": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "integer",
                                                        "description": "IDs der zugeordneten Kundengruppen."
                                                    },
                                                    "description": "IDs der zugeordneten Kundengruppen."
                                                }
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        }
                                    }
                                },
                                "example": {
                                    "name": "Sovendus Tracking",
                                    "new_customers_only": true,
                                    "custgroup_ids": [
                                        2
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Affiliate-Trackingcode aktualisieren",
                "description": "Aktualisiert einen Affiliate-Trackingcode.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutAffiliatesDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                    },
                                    "code": {
                                        "type": "string",
                                        "description": "Code oder Scriptinhalt des Datensatzes."
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "ID des Multishops."
                                    },
                                    "new_customers_only": {
                                        "type": "boolean",
                                        "description": "Kennzeichen fuer Ausgabe nur bei Neukunden."
                                    },
                                    "code_on_bottom": {
                                        "type": "integer",
                                        "description": "Kennzeichen fuer Ausgabe am Seitenende."
                                    },
                                    "codeversion": {
                                        "type": "integer",
                                        "description": "Version des Tracking-Codes."
                                    },
                                    "custgroup_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer",
                                            "description": "IDs der zugeordneten Kundengruppen."
                                        },
                                        "description": "IDs der zugeordneten Kundengruppen."
                                    }
                                },
                                "description": "Schema fuer Affiliates."
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "affiliates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Affiliate-Trackingcode loeschen",
                "description": "Loescht einen Affiliate-Trackingcode.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteAffiliatesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/affiliates/search": {
            "get": {
                "tags": [
                    "affiliates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Suchantwort fuer Affiliate-Trackingcodes.",
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "description": "ID des Multishops."
                                                    },
                                                    "new_customers_only": {
                                                        "type": "boolean",
                                                        "description": "Kennzeichen fuer Ausgabe nur bei Neukunden."
                                                    },
                                                    "code_on_bottom": {
                                                        "type": "integer",
                                                        "description": "Kennzeichen fuer Ausgabe am Seitenende."
                                                    },
                                                    "codeversion": {
                                                        "type": "integer",
                                                        "description": "Version des Tracking-Codes."
                                                    },
                                                    "code": {
                                                        "type": "string",
                                                        "description": "Code oder Scriptinhalt des Datensatzes."
                                                    },
                                                    "custgroup_ids": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "integer",
                                                            "description": "IDs der zugeordneten Kundengruppen."
                                                        },
                                                        "description": "IDs der zugeordneten Kundengruppen."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Gesamtanzahl der passenden Datensaetze."
                                                },
                                                "limit": {
                                                    "type": "integer",
                                                    "description": "Verwendetes Limit."
                                                },
                                                "offset": {
                                                    "type": "integer",
                                                    "description": "Verwendeter Offset."
                                                }
                                            },
                                            "description": "Metadaten zur Listenabfrage."
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/private/affiliates/1",
                                            "name": "Sovendus",
                                            "multishop_id": 0,
                                            "new_customers_only": false,
                                            "code_on_bottom": 1,
                                            "codeversion": 1,
                                            "code": "<script>...</script>",
                                            "custgroup_ids": [
                                                1,
                                                2
                                            ]
                                        }
                                    ],
                                    "meta": {
                                        "total": 1,
                                        "limit": 100,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Affiliate-Trackingcodes suchen",
                "description": "Sucht Affiliate-Trackingcodes nach Name oder Code.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetAffiliatesSearchPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/availabilities": {
            "get": {
                "tags": [
                    "availabilities"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Liste von Produktverfuegbarkeiten",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "description": "Eindeutige Verfuegbarkeit-ID"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri",
                                                "description": "API-Link zur Verfuegbarkeit",
                                                "example": "https://localhost/shop/api/v2/private/availabilities/1"
                                            },
                                            "lang": {
                                                "type": "integer",
                                                "description": "Sprach-ID"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://shop.local/api/v2/private/availabilities/1",
                                        "lang": 1
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Produktverfuegbarkeiten abrufen.",
                "description": "Liefert Daten fuer mehrere Produktverfuegbarkeiten.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetAvailabilitiesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "lang",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Sprach-ID"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "availabilities.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "availabilities.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "availabilities"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Produktverfuegbarkeit erstellen.",
                "description": "Erstellt eine Produktverfuegbarkeit.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostAvailabilitiesPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Request-Body fuer POST /private/availabilities.",
                                "properties": {
                                    "lang": {
                                        "type": "integer",
                                        "description": "Sprach-ID"
                                    },
                                    "name": {
                                        "type": "string",
                                        "description": "Bezeichnung"
                                    },
                                    "buyable": {
                                        "type": "boolean",
                                        "description": "Produkt ist kaufbar"
                                    },
                                    "icon": {
                                        "type": "object",
                                        "description": "Icon-Upload als Base64-Stream. Der Dateiname wird normalisiert, mit Verfuegbarkeit-ID gepraefixt und nach images/lieferbar/ gespeichert.",
                                        "properties": {
                                            "img": {
                                                "type": "string",
                                                "description": "Original-Dateiname"
                                            },
                                            "stream": {
                                                "type": "string",
                                                "format": "byte",
                                                "description": "Base64-kodierter Dateiinhalt"
                                            },
                                            "delete": {
                                                "type": "boolean",
                                                "description": "Bestehendes Icon entfernen"
                                            }
                                        }
                                    },
                                    "priority": {
                                        "type": "integer",
                                        "description": "Sortierung"
                                    },
                                    "delivery_days": {
                                        "type": "integer",
                                        "description": "Anzahl Tage bis zur Lieferung"
                                    },
                                    "notification": {
                                        "type": "integer",
                                        "description": "Benachrichtigungsmodus: 0=keine, 1=Formular anzeigen, 2=E-Mail versenden"
                                    },
                                    "hide_price": {
                                        "type": "boolean",
                                        "description": "Preis ausblenden"
                                    },
                                    "change_status": {
                                        "type": "integer",
                                        "description": "Produktstatus-Aktion: -1=keine, 0=inaktiv, 1=aktiv"
                                    }
                                },
                                "required": [
                                    "name"
                                ]
                            },
                            "example": {
                                "lang": 1,
                                "name": "Sofort lieferbar",
                                "buyable": true,
                                "priority": 10,
                                "delivery_days": 1,
                                "notification": 0,
                                "hide_price": false,
                                "change_status": -1
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "availabilities.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "availabilities.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/availabilities/{id}": {
            "get": {
                "tags": [
                    "availabilities"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Antwort auf GET /private/availabilities/{id} - Produktverfuegbarkeit",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Eindeutige Verfuegbarkeit-ID"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API-Link zur Verfuegbarkeit"
                                        },
                                        "lang": {
                                            "type": "integer",
                                            "description": "Sprach-ID"
                                        },
                                        "name": {
                                            "type": "string",
                                            "description": "Bezeichnung"
                                        },
                                        "buyable": {
                                            "type": "boolean",
                                            "description": "Produkt ist kaufbar"
                                        },
                                        "icon": {
                                            "type": "object",
                                            "properties": {
                                                "file": {
                                                    "type": "string",
                                                    "description": "Dateiname"
                                                },
                                                "path": {
                                                    "type": "string",
                                                    "description": "Relativer Pfad"
                                                },
                                                "url": {
                                                    "type": "string",
                                                    "format": "uri",
                                                    "description": "Vollstaendige URL"
                                                }
                                            }
                                        },
                                        "priority": {
                                            "type": "integer",
                                            "description": "Sortierung"
                                        },
                                        "delivery_days": {
                                            "type": "integer",
                                            "description": "Anzahl Tage bis zur Lieferung"
                                        },
                                        "notification": {
                                            "type": "integer",
                                            "description": "Benachrichtigungsmodus: 0=keine, 1=Formular anzeigen, 2=E-Mail versenden"
                                        },
                                        "hide_price": {
                                            "type": "boolean",
                                            "description": "Preis ausblenden"
                                        },
                                        "change_status": {
                                            "type": "integer",
                                            "description": "Produktstatus-Aktion: -1=keine, 0=inaktiv, 1=aktiv"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://shop.local/api/v2/private/availabilities/1",
                                    "lang": 1,
                                    "name": "Sofort lieferbar",
                                    "buyable": true,
                                    "icon": {
                                        "file": "availability_1_farbe_gruen.gif",
                                        "path": "images/lieferbar/availability_1_farbe_gruen.gif",
                                        "url": "https://shop.local/images/lieferbar/availability_1_farbe_gruen.gif"
                                    },
                                    "priority": 10,
                                    "delivery_days": 1,
                                    "notification": 0,
                                    "hide_price": false,
                                    "change_status": -1
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Produktverfuegbarkeit abrufen.",
                "description": "Liefert Daten zu einer Produktverfuegbarkeit.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetAvailabilitiesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Verfuegbarkeit-ID"
                    },
                    {
                        "name": "lang",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Sprach-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "availabilities.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "availabilities.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "availabilities"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Produktverfuegbarkeit aktualisieren.",
                "description": "Aktualisiert die Daten einer Produktverfuegbarkeit.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutAvailabilitiesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Verfuegbarkeit-ID"
                    },
                    {
                        "name": "lang",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Sprach-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Request-Body fuer PUT /private/availabilities/{id}. Alle Felder sind optional.",
                                "properties": {
                                    "lang": {
                                        "type": "integer",
                                        "description": "Sprach-ID"
                                    },
                                    "name": {
                                        "type": "string",
                                        "description": "Bezeichnung"
                                    },
                                    "buyable": {
                                        "type": "boolean",
                                        "description": "Produkt ist kaufbar"
                                    },
                                    "icon": {
                                        "type": "object",
                                        "description": "Icon-Upload als Base64-Stream. Mit delete=true kann das bestehende Icon entfernt werden.",
                                        "properties": {
                                            "img": {
                                                "type": "string",
                                                "description": "Original-Dateiname"
                                            },
                                            "stream": {
                                                "type": "string",
                                                "format": "byte",
                                                "description": "Base64-kodierter Dateiinhalt"
                                            },
                                            "delete": {
                                                "type": "boolean",
                                                "description": "Bestehendes Icon entfernen"
                                            }
                                        }
                                    },
                                    "priority": {
                                        "type": "integer",
                                        "description": "Sortierung"
                                    },
                                    "delivery_days": {
                                        "type": "integer",
                                        "description": "Anzahl Tage bis zur Lieferung"
                                    },
                                    "notification": {
                                        "type": "integer",
                                        "description": "Benachrichtigungsmodus: 0=keine, 1=Formular anzeigen, 2=E-Mail versenden"
                                    },
                                    "hide_price": {
                                        "type": "boolean",
                                        "description": "Preis ausblenden"
                                    },
                                    "change_status": {
                                        "type": "integer",
                                        "description": "Produktstatus-Aktion: -1=keine, 0=inaktiv, 1=aktiv"
                                    }
                                }
                            },
                            "example": {
                                "lang": 1,
                                "name": "Kurzfristig lieferbar",
                                "delivery_days": 3,
                                "hide_price": false
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "availabilities.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "availabilities.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "availabilities"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Eine Produktverfuegbarkeit loeschen.",
                "description": "Loescht eine Produktverfuegbarkeit fuer die angegebene Sprache.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteAvailabilitiesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Verfuegbarkeit-ID"
                    },
                    {
                        "name": "lang",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Sprach-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "availabilities.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "availabilities.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/availabilities/search": {
            "get": {
                "tags": [
                    "availabilities"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Suchergebnis fuer Produktverfuegbarkeiten",
                                    "items": {
                                        "$ref": "v2/docs/returns/Availabilities/get_availability.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://shop.local/api/v2/private/availabilities/1",
                                        "lang": 1,
                                        "name": "Sofort lieferbar",
                                        "buyable": true,
                                        "icon": {
                                            "file": "availability_1_farbe_gruen.gif",
                                            "path": "images/lieferbar/availability_1_farbe_gruen.gif",
                                            "url": "https://shop.local/images/lieferbar/availability_1_farbe_gruen.gif"
                                        },
                                        "priority": 10,
                                        "delivery_days": 1,
                                        "notification": 0,
                                        "hide_price": false,
                                        "change_status": -1
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Produktverfuegbarkeiten nach einem String.",
                "description": "Sucht in Produktverfuegbarkeiten nach Name.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetAvailabilitiesSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    },
                    {
                        "name": "lang",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Sprach-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "availabilities.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "availabilities.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/availabilities/defaults": {
            "get": {
                "tags": [
                    "availabilities"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Antwort auf GET /private/availabilities/defaults - Standardwerte fuer automatische Produktverfuegbarkeiten",
                                    "properties": {
                                        "availability_on_stock_id": {
                                            "type": "integer",
                                            "description": "Verfuegbarkeit bei Bestand ueber Grenze"
                                        },
                                        "availability_on_low_stock_id": {
                                            "type": "integer",
                                            "description": "Verfuegbarkeit bei Bestand unter oder gleich Grenze"
                                        },
                                        "availability_low_stock_limit": {
                                            "type": "integer",
                                            "description": "Grenze fuer geringen Bestand"
                                        },
                                        "availability_on_no_stock_id": {
                                            "type": "integer",
                                            "description": "Verfuegbarkeit bei keinem Bestand"
                                        },
                                        "availability_buy_on_zero_stock_id": {
                                            "type": "integer",
                                            "description": "Verfuegbarkeit bei keinem Bestand und Kaufen bei Null"
                                        }
                                    }
                                },
                                "example": {
                                    "availability_on_stock_id": 1,
                                    "availability_on_low_stock_id": 2,
                                    "availability_low_stock_limit": 5,
                                    "availability_on_no_stock_id": 3,
                                    "availability_buy_on_zero_stock_id": 4
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Standardwerte fuer automatische Produktverfuegbarkeiten abrufen.",
                "description": "Liefert die Standard-Verfuegbarkeiten fuer automatische Statuswechsel.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetAvailabilitiesDefaultsPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "availabilities.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "availabilities.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "availabilities"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Antwort auf GET /private/availabilities/defaults - Standardwerte fuer automatische Produktverfuegbarkeiten",
                                    "properties": {
                                        "availability_on_stock_id": {
                                            "type": "integer",
                                            "description": "Verfuegbarkeit bei Bestand ueber Grenze"
                                        },
                                        "availability_on_low_stock_id": {
                                            "type": "integer",
                                            "description": "Verfuegbarkeit bei Bestand unter oder gleich Grenze"
                                        },
                                        "availability_low_stock_limit": {
                                            "type": "integer",
                                            "description": "Grenze fuer geringen Bestand"
                                        },
                                        "availability_on_no_stock_id": {
                                            "type": "integer",
                                            "description": "Verfuegbarkeit bei keinem Bestand"
                                        },
                                        "availability_buy_on_zero_stock_id": {
                                            "type": "integer",
                                            "description": "Verfuegbarkeit bei keinem Bestand und Kaufen bei Null"
                                        }
                                    }
                                },
                                "example": {
                                    "availability_on_stock_id": 1,
                                    "availability_on_low_stock_id": 2,
                                    "availability_low_stock_limit": 5,
                                    "availability_on_no_stock_id": 3,
                                    "availability_buy_on_zero_stock_id": 4
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Standardwerte fuer automatische Produktverfuegbarkeiten aktualisieren.",
                "description": "Aktualisiert die Standard-Verfuegbarkeiten fuer automatische Statuswechsel und aktualisiert danach Produkte mit automatischer Verfuegbarkeit.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutAvailabilitiesDefaultsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Request-Body fuer PUT /private/availabilities/defaults. Alle Felder sind optional.",
                                "properties": {
                                    "availability_on_stock_id": {
                                        "type": "integer",
                                        "description": "Verfuegbarkeit bei Bestand ueber Grenze"
                                    },
                                    "availability_on_low_stock_id": {
                                        "type": "integer",
                                        "description": "Verfuegbarkeit bei Bestand unter oder gleich Grenze"
                                    },
                                    "availability_low_stock_limit": {
                                        "type": "integer",
                                        "description": "Grenze fuer geringen Bestand"
                                    },
                                    "availability_on_no_stock_id": {
                                        "type": "integer",
                                        "description": "Verfuegbarkeit bei keinem Bestand"
                                    },
                                    "availability_buy_on_zero_stock_id": {
                                        "type": "integer",
                                        "description": "Verfuegbarkeit bei keinem Bestand und Kaufen bei Null"
                                    }
                                }
                            },
                            "example": {
                                "availability_on_stock_id": 1,
                                "availability_on_low_stock_id": 2,
                                "availability_low_stock_limit": 5,
                                "availability_on_no_stock_id": 3,
                                "availability_buy_on_zero_stock_id": 4
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "availabilities.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "availabilities.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/baskets/{id}/basketurl": {
            "get": {
                "tags": [
                    "baskets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "string",
                                            "description": "Id (Session des Warenekorbs",
                                            "example": "uizqwe78qwe8qw7e68w7qq9w8e"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        },
                                        "basket_return_url": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "URL zum Warenkorb",
                                            "example": "123"
                                        },
                                        "expires_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "description": "Ablaufzeitpunkt der kurzlebigen \u00dcbergabe-URL"
                                        }
                                    }
                                },
                                "example": {
                                    "id": "uzwqeiuqwze87qwe687",
                                    "location": "https://domain.de/api/v2/endpoint/123",
                                    "basket_return_url": "https://domain.de/basket?basketId=iquwzeiwqziqwuez&basketHash=kurzlebige-checkout-capability",
                                    "expires_at": "2026-08-13T16:30:00+02:00"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Warenkorb Url holen",
                "description": "Gibt die URL zum erzeugten Warenkorb wieder um den Nutzer auf den Warenkorb zu leiten.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetBasketsBasketurlPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Warenkorb-ID"
                    },
                    {
                        "name": "valid_for_seconds",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "G\u00fcltigkeit der \u00dcbergabe-URL in Sekunden (300 bis 604800, Standard 7200)"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "baskets.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "baskets.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/baskets": {
            "post": {
                "tags": [
                    "baskets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "string",
                                            "description": "Id (Session des Warenekorbs",
                                            "example": "uizqwe78qwe8qw7e68w7qq9w8e"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": "uzwqeiuqwze87qwe687",
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Warenkorb erstellen.",
                "description": "Erstellt einen Warenkorb.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostBasketsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "multishop_id": {
                                        "type": "integer"
                                    }
                                }
                            },
                            "example": {
                                "multishop_id": 123
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "baskets.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "baskets.create"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/baskets/{id}/additem": {
            "post": {
                "tags": [
                    "baskets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "string",
                                            "description": "Id (Session des Warenekorbs",
                                            "example": "uizqwe78qwe8qw7e68w7qq9w8e"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        },
                                        "basketitem_id": {
                                            "type": "integer",
                                            "description": "Id des Warenkorbelements",
                                            "example": "123"
                                        },
                                        "quantity": {
                                            "type": "number",
                                            "description": "\u00dcbernommene Menge des Shopprodukts",
                                            "example": 1
                                        },
                                        "order_fields": {
                                            "type": "array",
                                            "description": "Gespeicherte Bestellmerkmale des Shopprodukts",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "order_field_id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "value": {
                                                        "type": "string"
                                                    },
                                                    "display_value": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": "uzwqeiuqwze87qwe687",
                                    "location": "https://domain.de/api/v2/endpoint/123",
                                    "basketitem_id": 123,
                                    "quantity": 1,
                                    "order_fields": [
                                        {
                                            "order_field_id": 123,
                                            "name": "Hauptdomain",
                                            "value": "fulex-apt.de",
                                            "display_value": "fulex-apt.de"
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Ein Produkt dem Warenkorb hinzuf\u00fcgen.",
                "description": "F\u00fcgt ein Shopprodukt oder ein manuelles Produkt dem Warenkorb hinzu.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostBasketsAdditemPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Warenkorb-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "sku": {
                                        "type": "string",
                                        "description": "Die Artikelnummer des Produktes"
                                    },
                                    "isShopArtikel": {
                                        "type": "boolean",
                                        "description": "Das Produkt ist ein Shopprodukt"
                                    },
                                    "quantity": {
                                        "type": "number",
                                        "minimum": 0.0001,
                                        "maximum": 9999,
                                        "default": 1,
                                        "description": "Menge des Shopprodukts"
                                    },
                                    "order_fields": {
                                        "type": "array",
                                        "maxItems": 25,
                                        "description": "Bestellmerkmale des Shopprodukts. Textfelder erwarten Text, Auswahlfelder die Options-ID.",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "order_field_id": {
                                                    "type": "integer"
                                                },
                                                "value": {
                                                    "type": [
                                                        "string",
                                                        "number",
                                                        "boolean"
                                                    ]
                                                }
                                            },
                                            "required": [
                                                "order_field_id",
                                                "value"
                                            ]
                                        }
                                    },
                                    "artikelName": {
                                        "type": "string",
                                        "description": "Produktbezeichnung, wenn kein Shopprodukt"
                                    },
                                    "artikelBeschreibung": {
                                        "type": "string",
                                        "description": "Produktbeschreibung, wenn kein Shopprodukt"
                                    },
                                    "artikelMenge": {
                                        "type": "integer",
                                        "description": "Menge, wenn kein Shopprodukt"
                                    },
                                    "artikelTax": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Steuersatz, wenn kein Shopprodukt"
                                    },
                                    "artikelImgUrl": {
                                        "type": "string",
                                        "format": "uri",
                                        "description": "Url zum Produkt-Bild, wenn kein Shopprodukt"
                                    },
                                    "artikelData": {
                                        "type": "string",
                                        "description": "Zusatzdaten zum Produktz, wenn kein Shopprodukt"
                                    },
                                    "artikelLandingPage": {
                                        "type": "string",
                                        "format": "uri",
                                        "description": "Url zur Produkt-Page, wenn kein Shopprodukt"
                                    }
                                },
                                "required": [
                                    "sku",
                                    "isShopArtikel"
                                ]
                            },
                            "example": {
                                "sku": "P-123",
                                "isShopArtikel": true,
                                "quantity": 1,
                                "order_fields": [
                                    {
                                        "order_field_id": 123,
                                        "value": "fulex-apt.de"
                                    }
                                ]
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "baskets.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "baskets.create"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/baskets/{id}/updateitem": {
            "put": {
                "tags": [
                    "baskets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "string",
                                            "description": "Id (Session des Warenekorbs",
                                            "example": "uizqwe78qwe8qw7e68w7qq9w8e"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        },
                                        "basketitem_id": {
                                            "type": "integer",
                                            "description": "Id des Warenkorbelements",
                                            "example": "123"
                                        }
                                    }
                                },
                                "example": {
                                    "id": "uzwqeiuqwze87qwe687",
                                    "location": "https://domain.de/api/v2/endpoint/123",
                                    "basketitem_id": 123
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Ein Warenkorb Item aktualisieren.",
                "description": "Aktualisiert einen Warenkorbelement (nur nicht Shopprodukte).\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutBasketsUpdateitemPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Warenkorb-ID"
                    },
                    {
                        "name": "basketitem_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Die Id des Warenkorbprodukts, wenn nicht vorhanden, wird der ganze Warenkorb gel\u00f6scht"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "basketitem_id": {
                                        "type": "integer",
                                        "description": "Die Id des Warenkorb-Produktes"
                                    },
                                    "sku": {
                                        "type": "string",
                                        "description": "Die Artikelnummer des Produktes"
                                    },
                                    "isShopArtikel": {
                                        "type": "boolean",
                                        "description": "Das Produkt ist ein Shopprodukt"
                                    },
                                    "artikelName": {
                                        "type": "string",
                                        "description": "Produktbezeichnung, wenn kein Shopprodukt"
                                    },
                                    "artikelBeschreibung": {
                                        "type": "string",
                                        "description": "Produktbeschreibung, wenn kein Shopprodukt"
                                    },
                                    "artikelMenge": {
                                        "type": "integer",
                                        "description": "Menge, wenn kein Shopprodukt"
                                    },
                                    "artikelTax": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Steuersatz, wenn kein Shopprodukt"
                                    },
                                    "artikelImgUrl": {
                                        "type": "string",
                                        "format": "uri",
                                        "description": "Url zum Produkt-Bild, wenn kein Shopprodukt"
                                    },
                                    "artikelData": {
                                        "type": "string",
                                        "description": "Zusatzdaten zum Produktz, wenn kein Shopprodukt"
                                    },
                                    "artikelLandingPage": {
                                        "type": "string",
                                        "format": "uri",
                                        "description": "Url zur Produkt-Page, wenn kein Shopprodukt"
                                    }
                                },
                                "required": [
                                    "basketitem_id",
                                    "isShopArtikel"
                                ]
                            },
                            "example": {
                                "basketitem_id": 123,
                                "sku": "P-123",
                                "isShopArtikel": false,
                                "artikelName": "Neue Produkttitel"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "baskets.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "baskets.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/baskets/{id}": {
            "delete": {
                "tags": [
                    "baskets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Einen Warenkorb oder ein Produkt aus dem Warenkorb l\u00f6schen.",
                "description": "L\u00f6scht einen kompletten Warenkorb oder ein Produkt aus em Warenkorb.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteBasketsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Warenkorb-ID"
                    },
                    {
                        "name": "basketitem_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Die Id des Warenkorbprodukts, wenn nicht vorhanden, wird der ganze Warenkorb gel\u00f6scht"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "baskets.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "baskets.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/bills": {
            "get": {
                "tags": [
                    "bills"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "oneOf": [
                                        {
                                            "description": "Kurzform (Standardausgabe)",
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 123
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "format": "uri",
                                                        "example": "https://localhost/shop/api/v2/private/bills/123"
                                                    }
                                                }
                                            }
                                        },
                                        {
                                            "description": "Detailform (wenn ?details=1)",
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1private~1bills~1{id}/get/responses/200/content/application~1json/schema"
                                            }
                                        }
                                    ]
                                },
                                "examples": {
                                    "Kurzform": {
                                        "summary": "Standardausgabe \u2013 Basisdaten der Rechnung",
                                        "value": [
                                            {
                                                "id": 101,
                                                "location": "https://shop.local/api/v2/private/bills/101"
                                            },
                                            {
                                                "id": 102,
                                                "location": "https://shop.local/api/v2/private/bills/102"
                                            }
                                        ]
                                    },
                                    "Detailform": {
                                        "summary": "Detaillierte Ausgabe \u2013 inklusive Adress- und Steuerdaten",
                                        "value": [
                                            {
                                                "id": 101,
                                                "location": "https://shop.local/api/v2/private/bills/101",
                                                "email": "kunde@example.com",
                                                "date": "2025-11-09",
                                                "date_delivery": "2025-11-05",
                                                "bill_number": "RE-2025-101",
                                                "order_id": 5001,
                                                "order_location": "https://shop.local/api/v2/private/Orders/5001",
                                                "custgroup_id": 3,
                                                "custgroup_name": "B2C Standard",
                                                "bill_salutation": "Herr",
                                                "bill_firstname": "Max",
                                                "bill_lastname": "Muster",
                                                "bill_company": "Musterfirma GmbH",
                                                "bill_street": "Beispielstra\u00dfe",
                                                "bill_streetnr": "42",
                                                "bill_zip": "12345",
                                                "bill_city": "Berlin",
                                                "bill_country": "Deutschland",
                                                "bill_country_iso2": "DE",
                                                "bill_country_iso3": "DEU",
                                                "tax": [
                                                    {
                                                        "tax_rate": 19,
                                                        "tax_notice": "inkl.",
                                                        "tax_amount": 19.13,
                                                        "tax_base": 100.77
                                                    }
                                                ],
                                                "total_amount_exclude_tax": 100.77,
                                                "total_amount_include_tax": 119.9
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Rechnungen abrufen.",
                "description": "Liefert Daten f\u00fcr mehrere Rechnungen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetBillsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zur\u00fcckgegebenen Datens\u00e4tze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Rechnungsdaten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "custgroup_id": {
                                    "type": "integer"
                                },
                                "start_date": {
                                    "type": "string"
                                },
                                "end_date": {
                                    "type": "string"
                                }
                            }
                        },
                        "description": "Filtert nach z.b. Zeitraum"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "bills.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "bills.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/bills/{id}": {
            "get": {
                "tags": [
                    "bills"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Eindeutige ID der Rechnung"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API-URL zu dieser Rechnung"
                                        },
                                        "email": {
                                            "type": "string",
                                            "format": "email",
                                            "description": "E-Mail-Adresse des Kunden"
                                        },
                                        "date": {
                                            "type": "string",
                                            "format": "date",
                                            "description": "Erstellungsdatum der Rechnung"
                                        },
                                        "date_delivery": {
                                            "type": "string",
                                            "format": "date",
                                            "description": "Lieferdatum (Jahr-Monat-Tag)"
                                        },
                                        "bill_number": {
                                            "type": "string",
                                            "description": "Rechnungsnummer"
                                        },
                                        "order_id": {
                                            "type": "integer",
                                            "description": "Zugeh\u00f6rige Bestell-ID"
                                        },
                                        "order_location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API-URL zur zugeh\u00f6rigen Bestellung"
                                        },
                                        "customer_id": {
                                            "type": "integer",
                                            "description": "Kundennummer",
                                            "example": 1234
                                        },
                                        "custgroup_id": {
                                            "type": "integer",
                                            "description": "ID der Kundengruppe"
                                        },
                                        "custgroup_name": {
                                            "type": "string",
                                            "description": "Bezeichnung der Kundengruppe"
                                        },
                                        "bill_salutation": {
                                            "type": "string",
                                            "description": "Anrede des Rechnungsempf\u00e4ngers"
                                        },
                                        "bill_firstname": {
                                            "type": "string",
                                            "description": "Vorname des Rechnungsempf\u00e4ngers"
                                        },
                                        "bill_lastname": {
                                            "type": "string",
                                            "description": "Nachname des Rechnungsempf\u00e4ngers"
                                        },
                                        "bill_company": {
                                            "type": "string",
                                            "description": "Firma des Rechnungsempf\u00e4ngers"
                                        },
                                        "bill_addition": {
                                            "type": "string",
                                            "description": "Adresszusatz"
                                        },
                                        "bill_street": {
                                            "type": "string",
                                            "description": "Stra\u00dfe des Rechnungsempf\u00e4ngers"
                                        },
                                        "bill_streetnr": {
                                            "type": "string",
                                            "description": "Hausnummer"
                                        },
                                        "bill_zip": {
                                            "type": "string",
                                            "description": "Postleitzahl"
                                        },
                                        "bill_city": {
                                            "type": "string",
                                            "description": "Ort"
                                        },
                                        "bill_state": {
                                            "type": "string",
                                            "description": "Bundesland oder Region"
                                        },
                                        "bill_country": {
                                            "type": "string",
                                            "description": "Land"
                                        },
                                        "bill_country_iso2": {
                                            "type": "string",
                                            "minLength": 2,
                                            "maxLength": 2,
                                            "description": "ISO2-L\u00e4ndercode"
                                        },
                                        "bill_country_iso3": {
                                            "type": "string",
                                            "minLength": 3,
                                            "maxLength": 3,
                                            "description": "ISO3-L\u00e4ndercode"
                                        },
                                        "vat_number": {
                                            "type": "string",
                                            "description": "UID Nummer des Kunden, sofern aktiv bei der Rechnung",
                                            "example": "DE12345678"
                                        },
                                        "price_exclude_tax": {
                                            "type": "boolean",
                                            "description": "Preise der Bestellung sind zzgl. MwSt",
                                            "example": false
                                        },
                                        "tax": {
                                            "type": "array",
                                            "description": "Liste enthaltener Steuerpositionen",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "tax_rate": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "description": "Steuersatz (z. B. 19 f\u00fcr 19 %)"
                                                    },
                                                    "tax_notice": {
                                                        "type": "string",
                                                        "description": "Steuerhinweis"
                                                    },
                                                    "tax_amount": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "description": "Steuerbetrag"
                                                    },
                                                    "tax_base": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "description": "Netto-Basiswert"
                                                    }
                                                }
                                            }
                                        },
                                        "total_amount_exclude_tax": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Gesamtsumme ohne Steuer"
                                        },
                                        "total_amount_include_tax": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Gesamtsumme inklusive Steuer"
                                        },
                                        "html": {
                                            "type": "string",
                                            "description": "Base64-kodierter HTML-Inhalt der Rechnung (optional)"
                                        },
                                        "pdf": {
                                            "type": "string",
                                            "description": "Base64-kodierte PDF-Datei der Rechnung (optional)"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 101,
                                    "location": "https://shop.local/api/v2/private/bills/101",
                                    "email": "kunde@example.com",
                                    "date": "2025-11-09",
                                    "date_delivery": "2025-11-05",
                                    "bill_number": "RE-2025-101",
                                    "order_id": 5001,
                                    "order_location": "https://shop.local/api/v2/private/orders/5001",
                                    "custgroup_id": 3,
                                    "custgroup_name": "B2C Standard",
                                    "bill_salutation": "Herr",
                                    "bill_firstname": "Max",
                                    "bill_lastname": "Muster",
                                    "bill_company": "Musterfirma GmbH",
                                    "bill_street": "Beispielstra\u00dfe",
                                    "bill_streetnr": "42",
                                    "bill_zip": "12345",
                                    "bill_city": "Berlin",
                                    "bill_country": "Deutschland",
                                    "bill_country_iso2": "DE",
                                    "bill_country_iso3": "DEU",
                                    "vat_number": "ATU2345678",
                                    "price_exclude_tax": false,
                                    "tax": [
                                        {
                                            "tax_rate": 19,
                                            "tax_notice": "inkl.",
                                            "tax_amount": 19.13,
                                            "tax_base": 100.77
                                        }
                                    ],
                                    "total_amount_exclude_tax": 100.77,
                                    "total_amount_include_tax": 119.9
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Rechnung abrufen.",
                "description": "Liefert Daten zu einer Rechnung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetBillsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Bill-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "bills.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "bills.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/bills/{id}/sendmail": {
            "post": {
                "tags": [
                    "bills"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sendet die Rechnung an Empfaenger",
                "description": "Sendet eine Rechnungen an Empfaenger.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostBillsSendmailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Bill-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "recipients": {
                                        "type": "array",
                                        "description": "Liste der Empfaenger-E-Mailadressen",
                                        "items": {
                                            "type": "string",
                                            "format": "email",
                                            "example": "kunde@example.com"
                                        },
                                        "example": [
                                            "kunde@example.com",
                                            "support@example.com"
                                        ]
                                    }
                                }
                            },
                            "example": {
                                "recipients": [
                                    "kunde@example.com",
                                    "support@example.com"
                                ]
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "bills.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "bills.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/cashmarketings": {
            "get": {
                "tags": [
                    "cashmarketings"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Listenantwort fuer Cash-Marketing-Kampagnen.",
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/cashmarketings/1",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Flyer campaign",
                                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                    },
                                                    "is_active": {
                                                        "type": "boolean",
                                                        "example": true,
                                                        "description": "Kennzeichen, ob der Datensatz aktiv ist."
                                                    },
                                                    "status_id": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "Interne ID des Status."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": "integer",
                                                    "example": 1,
                                                    "description": "Gesamtanzahl der passenden Datensaetze."
                                                },
                                                "limit": {
                                                    "type": "integer",
                                                    "example": 50,
                                                    "description": "Verwendetes Limit."
                                                },
                                                "offset": {
                                                    "type": "integer",
                                                    "example": 0,
                                                    "description": "Verwendeter Offset."
                                                }
                                            },
                                            "description": "Metadaten zur Listenabfrage."
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/cashmarketings/1",
                                            "name": "Flyer campaign",
                                            "is_active": true
                                        }
                                    ],
                                    "meta": {
                                        "total": 1,
                                        "limit": 50,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Cash-Marketing-Kampagnen abrufen",
                "description": "Gibt Cash-Marketing-Kampagnen aus der Backend-Ansicht zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCashmarketingsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze. Standard 50, maximal 250."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze. Standard 0."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Vollstaendige Kampagnendetails ausgeben."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter: id, name, status."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "cashmarketings"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Detailantwort fuer eine Cash-Marketing-Kampagne.",
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1,
                                                    "description": "Interne ID des Datensatzes."
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/cashmarketings/1",
                                                    "description": "API-URL zur Detailansicht des Datensatzes."
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Flyer campaign",
                                                    "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                },
                                                "is_active": {
                                                    "type": "boolean",
                                                    "example": true,
                                                    "description": "Kennzeichen, ob der Datensatz aktiv ist."
                                                },
                                                "status_id": {
                                                    "type": "integer",
                                                    "example": 1,
                                                    "description": "Interne ID des Status."
                                                }
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        }
                                    }
                                },
                                "example": {
                                    "name": "Flyer campaign",
                                    "is_active": true
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Cash-Marketing-Kampagne anlegen",
                "description": "Legt eine Cash-Marketing-Kampagne an.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostCashmarketingsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Flyer campaign",
                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                    },
                                    "is_active": {
                                        "type": "boolean",
                                        "example": true,
                                        "description": "Kennzeichen, ob der Datensatz aktiv ist."
                                    },
                                    "status_id": {
                                        "type": "integer",
                                        "example": 1,
                                        "description": "Interne ID des Status."
                                    }
                                },
                                "description": "Schema fuer Cashmarketings."
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/cashmarketings/{id}": {
            "put": {
                "tags": [
                    "cashmarketings"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Detailantwort fuer eine Cash-Marketing-Kampagne.",
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1,
                                                    "description": "Interne ID des Datensatzes."
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/cashmarketings/1",
                                                    "description": "API-URL zur Detailansicht des Datensatzes."
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Flyer campaign",
                                                    "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                },
                                                "is_active": {
                                                    "type": "boolean",
                                                    "example": true,
                                                    "description": "Kennzeichen, ob der Datensatz aktiv ist."
                                                },
                                                "status_id": {
                                                    "type": "integer",
                                                    "example": 1,
                                                    "description": "Interne ID des Status."
                                                }
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        }
                                    }
                                },
                                "example": {
                                    "name": "Flyer campaign",
                                    "is_active": true
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Cash-Marketing-Kampagne aktualisieren",
                "description": "Aktualisiert eine Cash-Marketing-Kampagne.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutCashmarketingsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Cash marketing campaign ID."
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Flyer campaign",
                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                    },
                                    "is_active": {
                                        "type": "boolean",
                                        "example": true,
                                        "description": "Kennzeichen, ob der Datensatz aktiv ist."
                                    },
                                    "status_id": {
                                        "type": "integer",
                                        "example": 1,
                                        "description": "Interne ID des Status."
                                    }
                                },
                                "description": "Schema fuer Cashmarketings."
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "cashmarketings"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Cash-Marketing-Kampagne loeschen",
                "description": "Loescht eine Cash-Marketing-Kampagne.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteCashmarketingsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Cash marketing campaign ID."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/cashstores": {
            "get": {
                "tags": [
                    "cashstores"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_cashstores_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/cashstores/1",
                                            "name": "Main store",
                                            "depot_id": 1
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Cashstores abrufen.",
                "description": "Liefert eine paginierte Liste fuer Cashstores.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetCashstoresPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/cashstores/{id}": {
            "get": {
                "tags": [
                    "cashstores"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "get_cashstores_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/cashstores/1",
                                        "name": "Main store",
                                        "icon": "cashstore_1.png",
                                        "icon_path": "../images/icons/cashstore_1.png",
                                        "cash_customer_id": 10000,
                                        "cash_register_id": 1,
                                        "depot_id": 1,
                                        "depot_location": "https://localhost/shop/api/v2/private/depots/1",
                                        "depot_name": "Main warehouse",
                                        "bill_template_id": 1
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Cashstores Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Cashstores.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetCashstoresDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/cashstores/search": {
            "get": {
                "tags": [
                    "cashstores"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_cashstores_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/cashstores/1",
                                            "name": "Main store",
                                            "depot_id": 1
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Cashstores suchen.",
                "description": "Sucht Datensaetze fuer Cashstores anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetCashstoresSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/categories": {
            "get": {
                "tags": [
                    "categories"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "name": {
                                                "type": "string"
                                            },
                                            "parent_id": {
                                                "type": "integer"
                                            },
                                            "parent_location": {
                                                "type": [
                                                    "string",
                                                    "null"
                                                ],
                                                "format": "uri"
                                            },
                                            "active": {
                                                "type": "boolean"
                                            },
                                            "sort_order": {
                                                "type": "integer"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 12,
                                        "location": "https://localhost/shop/api/v2/private/categories/12",
                                        "name": "Tassen",
                                        "parent_id": 3,
                                        "parent_location": "https://localhost/shop/api/v2/private/categories/3",
                                        "active": true,
                                        "sort_order": 10
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Produktgruppen abrufen.",
                "description": "Liefert Daten fuer mehrere Produktgruppen. Schreibaktionen sind bewusst nicht Teil dieses Controllers, weil die Backend-UI beim Speichern Bilder, Content-Slots, Filter, Sizegroups und Rewrite-URLs verarbeitet.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCategoriesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "parent_id": {
                                    "type": "integer"
                                },
                                "active": {
                                    "type": "integer"
                                }
                            }
                        },
                        "description": "Filtert nach Name, Eltern-Produktgruppe oder Status"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "categories.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "categories.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/categories/{id}": {
            "get": {
                "tags": [
                    "categories"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "sub_name": {
                                            "type": "string"
                                        },
                                        "description": {
                                            "type": "string"
                                        },
                                        "description2": {
                                            "type": "string"
                                        },
                                        "parent_id": {
                                            "type": "integer"
                                        },
                                        "parent_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "path": {
                                            "type": "string"
                                        },
                                        "level": {
                                            "type": "integer"
                                        },
                                        "active": {
                                            "type": "boolean"
                                        },
                                        "sort_order": {
                                            "type": "integer"
                                        },
                                        "sort_categories_by_name": {
                                            "type": "boolean"
                                        },
                                        "product_sort_mode": {
                                            "type": "integer"
                                        },
                                        "product_sort_method": {
                                            "type": "string"
                                        },
                                        "link": {
                                            "type": "string"
                                        },
                                        "link_type": {
                                            "type": "integer"
                                        },
                                        "hide_link_text": {
                                            "type": "boolean"
                                        },
                                        "show_brands": {
                                            "type": "boolean"
                                        },
                                        "show_filter": {
                                            "type": "boolean"
                                        },
                                        "show_manufacturer_block": {
                                            "type": "boolean"
                                        },
                                        "show_sub_products": {
                                            "type": "integer"
                                        },
                                        "views": {
                                            "type": "integer"
                                        },
                                        "images": {
                                            "type": "object",
                                            "properties": {
                                                "category_image": {
                                                    "type": "string"
                                                },
                                                "category_image_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "uri"
                                                },
                                                "tree_image": {
                                                    "type": "string"
                                                },
                                                "tree_image_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "uri"
                                                },
                                                "link_image": {
                                                    "type": "string"
                                                },
                                                "link_image_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "uri"
                                                },
                                                "facebook_og_image": {
                                                    "type": "string"
                                                },
                                                "facebook_og_image_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "uri"
                                                }
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "title": {
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "type": "string"
                                                },
                                                "keywords": {
                                                    "type": "string"
                                                },
                                                "facebook_og_title": {
                                                    "type": "string"
                                                },
                                                "facebook_og_description": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "children": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "format": "uri"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    },
                                                    "sort_order": {
                                                        "type": "integer"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 12,
                                    "location": "https://localhost/shop/api/v2/private/categories/12",
                                    "name": "Tassen",
                                    "sub_name": "",
                                    "description": "Kategorie fuer Tassen.",
                                    "description2": "",
                                    "parent_id": 3,
                                    "parent_location": "https://localhost/shop/api/v2/private/categories/3",
                                    "path": "Merchandise > Tassen",
                                    "level": 2,
                                    "active": true,
                                    "sort_order": 10,
                                    "sort_categories_by_name": false,
                                    "product_sort_mode": 0,
                                    "product_sort_method": "",
                                    "link": "",
                                    "link_type": 0,
                                    "hide_link_text": false,
                                    "show_brands": false,
                                    "show_filter": true,
                                    "show_manufacturer_block": true,
                                    "show_sub_products": -1,
                                    "views": 42,
                                    "images": {
                                        "category_image": "12_tassen.jpg",
                                        "category_image_url": "https://localhost/shop/images/categories/12_tassen.jpg",
                                        "tree_image": "",
                                        "tree_image_url": null,
                                        "link_image": "",
                                        "link_image_url": null,
                                        "facebook_og_image": "fbog_c_tassen.jpg",
                                        "facebook_og_image_url": "https://localhost/shop/images/categories/fbog_c_tassen.jpg"
                                    },
                                    "meta": {
                                        "title": "Tassen kaufen",
                                        "description": "Tassen im Shop kaufen.",
                                        "keywords": "tassen,becher",
                                        "facebook_og_title": "Tassen",
                                        "facebook_og_description": "Kategorie Tassen"
                                    },
                                    "children": []
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Produktgruppe abrufen.",
                "description": "Liefert Daten zu einer Produktgruppe.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCategoriesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Produktgruppen-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "categories.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "categories.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/categories/search": {
            "get": {
                "tags": [
                    "categories"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "sub_name": {
                                            "type": "string"
                                        },
                                        "description": {
                                            "type": "string"
                                        },
                                        "description2": {
                                            "type": "string"
                                        },
                                        "parent_id": {
                                            "type": "integer"
                                        },
                                        "parent_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "path": {
                                            "type": "string"
                                        },
                                        "level": {
                                            "type": "integer"
                                        },
                                        "active": {
                                            "type": "boolean"
                                        },
                                        "sort_order": {
                                            "type": "integer"
                                        },
                                        "sort_categories_by_name": {
                                            "type": "boolean"
                                        },
                                        "product_sort_mode": {
                                            "type": "integer"
                                        },
                                        "product_sort_method": {
                                            "type": "string"
                                        },
                                        "link": {
                                            "type": "string"
                                        },
                                        "link_type": {
                                            "type": "integer"
                                        },
                                        "hide_link_text": {
                                            "type": "boolean"
                                        },
                                        "show_brands": {
                                            "type": "boolean"
                                        },
                                        "show_filter": {
                                            "type": "boolean"
                                        },
                                        "show_manufacturer_block": {
                                            "type": "boolean"
                                        },
                                        "show_sub_products": {
                                            "type": "integer"
                                        },
                                        "views": {
                                            "type": "integer"
                                        },
                                        "images": {
                                            "type": "object",
                                            "properties": {
                                                "category_image": {
                                                    "type": "string"
                                                },
                                                "category_image_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "uri"
                                                },
                                                "tree_image": {
                                                    "type": "string"
                                                },
                                                "tree_image_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "uri"
                                                },
                                                "link_image": {
                                                    "type": "string"
                                                },
                                                "link_image_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "uri"
                                                },
                                                "facebook_og_image": {
                                                    "type": "string"
                                                },
                                                "facebook_og_image_url": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "format": "uri"
                                                }
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "title": {
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "type": "string"
                                                },
                                                "keywords": {
                                                    "type": "string"
                                                },
                                                "facebook_og_title": {
                                                    "type": "string"
                                                },
                                                "facebook_og_description": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "children": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "format": "uri"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    },
                                                    "sort_order": {
                                                        "type": "integer"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 12,
                                    "location": "https://localhost/shop/api/v2/private/categories/12",
                                    "name": "Tassen",
                                    "sub_name": "",
                                    "description": "Kategorie fuer Tassen.",
                                    "description2": "",
                                    "parent_id": 3,
                                    "parent_location": "https://localhost/shop/api/v2/private/categories/3",
                                    "path": "Merchandise > Tassen",
                                    "level": 2,
                                    "active": true,
                                    "sort_order": 10,
                                    "sort_categories_by_name": false,
                                    "product_sort_mode": 0,
                                    "product_sort_method": "",
                                    "link": "",
                                    "link_type": 0,
                                    "hide_link_text": false,
                                    "show_brands": false,
                                    "show_filter": true,
                                    "show_manufacturer_block": true,
                                    "show_sub_products": -1,
                                    "views": 42,
                                    "images": {
                                        "category_image": "12_tassen.jpg",
                                        "category_image_url": "https://localhost/shop/images/categories/12_tassen.jpg",
                                        "tree_image": "",
                                        "tree_image_url": null,
                                        "link_image": "",
                                        "link_image_url": null,
                                        "facebook_og_image": "fbog_c_tassen.jpg",
                                        "facebook_og_image_url": "https://localhost/shop/images/categories/fbog_c_tassen.jpg"
                                    },
                                    "meta": {
                                        "title": "Tassen kaufen",
                                        "description": "Tassen im Shop kaufen.",
                                        "keywords": "tassen,becher",
                                        "facebook_og_title": "Tassen",
                                        "facebook_og_description": "Kategorie Tassen"
                                    },
                                    "children": []
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Produktgruppen nach einem String.",
                "description": "Sucht in Produktgruppen nach Bezeichnung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCategoriesSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "categories.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "categories.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/categoryattributeassignments": {
            "get": {
                "tags": [
                    "categoryattributeassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_categoryattributeassignment.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "2-12",
                                            "location": "https://localhost/shop/api/v2/private/categoryattributeassignments/2-12",
                                            "category_id": 2,
                                            "category_location": "https://localhost/shop/api/v2/private/categories/2",
                                            "attribute_definition_id": 12,
                                            "attribute_definition_location": "https://localhost/shop/api/v2/private/productattributedefinitions/12"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Categoryattributeassignments abrufen.",
                "description": "Liefert eine paginierte Liste fuer Categoryattributeassignments.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetCategoryattributeassignmentsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "categoryattributeassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "2-12"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/categoryattributeassignments/2-12"
                                                },
                                                "category_id": {
                                                    "type": "integer",
                                                    "example": 2
                                                },
                                                "category_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/categories/2"
                                                },
                                                "attribute_definition_id": {
                                                    "type": "integer",
                                                    "example": 12
                                                },
                                                "attribute_definition_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributedefinitions/12"
                                                },
                                                "category_name": {
                                                    "type": "string",
                                                    "example": "Ski"
                                                },
                                                "category_active": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "attribute_definition_name": {
                                                    "type": "string",
                                                    "example": "Color"
                                                },
                                                "attribute_definition_private": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "attribute_definition_show_in_filter": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "attribute_definition_show_on_detail": {
                                                    "type": "boolean",
                                                    "example": true
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "category_id": 2,
                                    "attribute_definition_id": 12
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Categoryattributeassignments anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Categoryattributeassignments.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostCategoryattributeassignmentsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "category_id",
                                    "attribute_definition_id"
                                ],
                                "properties": {
                                    "category_id": {
                                        "type": "integer",
                                        "example": 2
                                    },
                                    "attribute_definition_id": {
                                        "type": "integer",
                                        "example": 12
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/categoryattributeassignments/{id}": {
            "get": {
                "tags": [
                    "categoryattributeassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "2-12"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/categoryattributeassignments/2-12"
                                                },
                                                "category_id": {
                                                    "type": "integer",
                                                    "example": 2
                                                },
                                                "category_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/categories/2"
                                                },
                                                "attribute_definition_id": {
                                                    "type": "integer",
                                                    "example": 12
                                                },
                                                "attribute_definition_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributedefinitions/12"
                                                },
                                                "category_name": {
                                                    "type": "string",
                                                    "example": "Ski"
                                                },
                                                "category_active": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "attribute_definition_name": {
                                                    "type": "string",
                                                    "example": "Color"
                                                },
                                                "attribute_definition_private": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "attribute_definition_show_in_filter": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "attribute_definition_show_on_detail": {
                                                    "type": "boolean",
                                                    "example": true
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": "2-12",
                                        "location": "https://localhost/shop/api/v2/private/categoryattributeassignments/2-12",
                                        "category_id": 2,
                                        "category_location": "https://localhost/shop/api/v2/private/categories/2",
                                        "attribute_definition_id": 12,
                                        "attribute_definition_location": "https://localhost/shop/api/v2/private/productattributedefinitions/12",
                                        "category_name": "Ski",
                                        "category_active": true,
                                        "attribute_definition_name": "Color",
                                        "attribute_definition_private": false,
                                        "attribute_definition_show_in_filter": true,
                                        "attribute_definition_show_on_detail": true
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Categoryattributeassignments Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Categoryattributeassignments.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetCategoryattributeassignmentsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "categoryattributeassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Categoryattributeassignments loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Categoryattributeassignments.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteCategoryattributeassignmentsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/categoryattributeassignments/search": {
            "get": {
                "tags": [
                    "categoryattributeassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_categoryattributeassignment.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "2-12",
                                            "location": "https://localhost/shop/api/v2/private/categoryattributeassignments/2-12",
                                            "category_id": 2,
                                            "category_location": "https://localhost/shop/api/v2/private/categories/2",
                                            "attribute_definition_id": 12,
                                            "attribute_definition_location": "https://localhost/shop/api/v2/private/productattributedefinitions/12"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Categoryattributeassignments suchen.",
                "description": "Sucht Datensaetze fuer Categoryattributeassignments anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetCategoryattributeassignmentsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/categoryvariationgroupassignments": {
            "get": {
                "tags": [
                    "categoryvariationgroupassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Kategorie-Variantengruppen-Zuordnungen abrufen.",
                "description": "Liefert eine paginierte Liste der Zuordnungen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetCategoryvariationgroupassignmentsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "categoryvariationgroupassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Kategorie-Variantengruppen-Zuordnung anlegen.",
                "description": "Ordnet einer Kategorie eine Variantengruppe zu.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostCategoryvariationgroupassignmentsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "category_id",
                                    "variation_group_id"
                                ],
                                "properties": {
                                    "category_id": {
                                        "type": "integer",
                                        "example": 13
                                    },
                                    "variation_group_id": {
                                        "type": "integer",
                                        "example": 138
                                    },
                                    "sort_order": {
                                        "type": "integer",
                                        "example": 10
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/categoryvariationgroupassignments/{id}": {
            "get": {
                "tags": [
                    "categoryvariationgroupassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Kategorie-Variantengruppen-Zuordnung abrufen.",
                "description": "Liefert eine einzelne Zuordnung.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetCategoryvariationgroupassignmentsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "categoryvariationgroupassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Kategorie-Variantengruppen-Zuordnung loeschen.",
                "description": "Loescht eine Zuordnung anhand ihrer ID.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteCategoryvariationgroupassignmentsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/categoryvariationgroupassignments/search": {
            "get": {
                "tags": [
                    "categoryvariationgroupassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Kategorie-Variantengruppen-Zuordnungen suchen.",
                "description": "Sucht Zuordnungen anhand des Kategorie- oder Variantengruppennamens.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetCategoryvariationgroupassignmentsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/clickcollecttermins": {
            "get": {
                "tags": [
                    "clickcollecttermins"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "/private/clickcollecttermins/1",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "order_id": {
                                                        "type": "integer",
                                                        "example": 123,
                                                        "description": "ID der Bestellung."
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "ID des Multishops."
                                                    },
                                                    "appointment_at": {
                                                        "type": "string",
                                                        "example": "2026-06-12 12:30:00",
                                                        "description": "Feld `appointment_at` des Datensatzes."
                                                    },
                                                    "appointment_at_formatted": {
                                                        "type": "string",
                                                        "example": "12.06.2026 12:30",
                                                        "description": "Feld `appointment_at_formatted` des Datensatzes."
                                                    },
                                                    "order": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "description": "Feld `order` des Datensatzes."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1,
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100,
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0,
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Clickcollecttermins."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/private/clickcollecttermins/1",
                                            "order_id": 123,
                                            "multishop_id": 1,
                                            "appointment_at": "2026-06-12 12:30:00",
                                            "appointment_at_formatted": "12.06.2026 12:30",
                                            "order": {
                                                "id": 123,
                                                "location": "/private/orders/123",
                                                "order_number": "100001",
                                                "customer_id": 10,
                                                "customer_name": "Max Mustermann"
                                            }
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 100,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Click-and-Collect-Termine abrufen",
                "description": "Gibt gebuchte Click-and-Collect-Termine aus Bestellprozessen zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetClickcollectterminsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Bestell- und Kundendetails ausgeben."
                    },
                    {
                        "name": "multishop_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Multishop filtern."
                    },
                    {
                        "name": "order_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Bestellung filtern."
                    },
                    {
                        "name": "appointment_from",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Terminzeitpunkt ab filtern."
                    },
                    {
                        "name": "appointment_to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Terminzeitpunkt bis filtern."
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/clickcollecttermins/{id}": {
            "get": {
                "tags": [
                    "clickcollecttermins"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1,
                                                    "description": "Interne ID des Datensatzes."
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "/private/clickcollecttermins/1",
                                                    "description": "API-URL zur Detailansicht des Datensatzes."
                                                },
                                                "order_id": {
                                                    "type": "integer",
                                                    "example": 123,
                                                    "description": "ID der Bestellung."
                                                },
                                                "multishop_id": {
                                                    "type": "integer",
                                                    "example": 1,
                                                    "description": "ID des Multishops."
                                                },
                                                "appointment_at": {
                                                    "type": "string",
                                                    "example": "2026-06-12 12:30:00",
                                                    "description": "Feld `appointment_at` des Datensatzes."
                                                },
                                                "appointment_at_formatted": {
                                                    "type": "string",
                                                    "example": "12.06.2026 12:30",
                                                    "description": "Feld `appointment_at_formatted` des Datensatzes."
                                                },
                                                "order": {
                                                    "type": [
                                                        "object",
                                                        "null"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer",
                                                            "example": 123,
                                                            "description": "Interne ID des Datensatzes."
                                                        },
                                                        "location": {
                                                            "type": "string",
                                                            "example": "/private/orders/123",
                                                            "description": "API-URL zur Detailansicht des Datensatzes."
                                                        },
                                                        "order_number": {
                                                            "type": "string",
                                                            "example": "100001",
                                                            "description": "Bestellnummer bzw. Abo-Nr."
                                                        },
                                                        "customer_id": {
                                                            "type": "integer",
                                                            "example": 10,
                                                            "description": "ID des Kunden."
                                                        },
                                                        "customer_name": {
                                                            "type": "string",
                                                            "example": "Max Mustermann",
                                                            "description": "Name des Kunden."
                                                        }
                                                    },
                                                    "description": "Feld `order` des Datensatzes."
                                                }
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        }
                                    },
                                    "description": "Schema fuer Clickcollecttermins."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "/private/clickcollecttermins/1",
                                        "order_id": 123,
                                        "multishop_id": 1,
                                        "appointment_at": "2026-06-12 12:30:00",
                                        "appointment_at_formatted": "12.06.2026 12:30",
                                        "order": {
                                            "id": 123,
                                            "location": "/private/orders/123",
                                            "order_number": "100001",
                                            "customer_id": 10,
                                            "customer_name": "Max Mustermann"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Click-and-Collect-Termin abrufen",
                "description": "Gibt einen einzelnen Click-and-Collect-Termin zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetClickcollectterminsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/clickcollecttermins/search": {
            "get": {
                "tags": [
                    "clickcollecttermins"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/clickcollecttermin"
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1,
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100,
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0,
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "definitions": {
                                        "clickcollecttermin": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "/private/clickcollecttermins/1"
                                                },
                                                "order_id": {
                                                    "type": "integer",
                                                    "example": 123
                                                },
                                                "multishop_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "appointment_at": {
                                                    "type": "string",
                                                    "example": "2026-06-12 12:30:00"
                                                },
                                                "appointment_at_formatted": {
                                                    "type": "string",
                                                    "example": "12.06.2026 12:30"
                                                }
                                            }
                                        }
                                    },
                                    "description": "Schema fuer Clickcollecttermins."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/private/clickcollecttermins/1",
                                            "order_id": 123,
                                            "multishop_id": 1,
                                            "appointment_at": "2026-06-12 12:30:00",
                                            "appointment_at_formatted": "12.06.2026 12:30"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 100,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Click-and-Collect-Termine suchen",
                "description": "Sucht Click-and-Collect-Termine nach Bestellung oder Terminzeitpunkt.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetClickcollectterminsSearchPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/contactforms": {
            "get": {
                "tags": [
                    "contactforms"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "description": "Id des Objects",
                                                "example": 1
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri",
                                                "description": "API Url zum Object",
                                                "example": "https://localhost/shop/api/v2/private/contactforms/1"
                                            },
                                            "name": {
                                                "type": "string",
                                                "description": "Interne Bezeichnung",
                                                "example": "Allgemeine Anfrage"
                                            },
                                            "subject": {
                                                "type": "string",
                                                "description": "Betreff im Kontaktformular",
                                                "example": "Allgemeine Anfrage"
                                            },
                                            "recipient_email": {
                                                "type": "string",
                                                "format": "email",
                                                "description": "Empfaenger-E-Mail-Adresse",
                                                "example": "service@example.com"
                                            },
                                            "multishop_id": {
                                                "type": "integer",
                                                "description": "Id des Multishops",
                                                "example": 1
                                            },
                                            "response_enabled": {
                                                "type": "boolean",
                                                "description": "Automatische Antwortmail aktiv",
                                                "example": true
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/contactforms/1",
                                        "name": "Allgemeine Anfrage",
                                        "subject": "Allgemeine Anfrage",
                                        "recipient_email": "service@example.com",
                                        "multishop_id": 1,
                                        "response_enabled": true
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Kontaktformular-Konfigurationen abrufen.",
                "description": "Liefert Daten fuer mehrere Kontaktformular-Konfigurationen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContactformsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "subject": {
                                    "type": "string"
                                },
                                "recipient_email": {
                                    "type": "string"
                                },
                                "multishop_id": {
                                    "type": "integer"
                                },
                                "response_enabled": {
                                    "type": "boolean"
                                }
                            }
                        },
                        "description": "Filtert nach Name, Betreff, E-Mail, Multishop oder Antwortmail-Status"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contactforms.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contactforms.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "contactforms"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Kontaktformular-Konfiguration erstellen.",
                "description": "Erstellt eine Kontaktformular-Konfiguration.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostContactformsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name",
                                    "subject",
                                    "recipient_email"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Interne Bezeichnung",
                                        "example": "Allgemeine Anfrage"
                                    },
                                    "subject": {
                                        "type": "string",
                                        "description": "Betreff im Kontaktformular",
                                        "example": "Allgemeine Anfrage"
                                    },
                                    "recipient_email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "Empfaenger-E-Mail-Adresse",
                                        "example": "service@example.com"
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Id des Multishops",
                                        "example": 1
                                    },
                                    "response_enabled": {
                                        "type": "boolean",
                                        "description": "Automatische Antwortmail aktiv",
                                        "example": true
                                    },
                                    "response_text": {
                                        "type": "string",
                                        "description": "Antwortmail im Textformat",
                                        "example": "Vielen Dank fuer Ihre Anfrage."
                                    },
                                    "response_html": {
                                        "type": "string",
                                        "description": "Antwortmail im HTML-Format",
                                        "example": "<p>Vielen Dank fuer Ihre Anfrage.</p>"
                                    },
                                    "subject_order": {
                                        "type": "integer",
                                        "description": "Sortierung des Betreffs",
                                        "example": 10
                                    }
                                }
                            },
                            "example": {
                                "name": "Allgemeine Anfrage",
                                "subject": "Allgemeine Anfrage",
                                "recipient_email": "service@example.com",
                                "multishop_id": 1,
                                "response_enabled": true,
                                "response_text": "Vielen Dank fuer Ihre Anfrage.",
                                "response_html": "<p>Vielen Dank fuer Ihre Anfrage.</p>",
                                "subject_order": 10
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contactforms.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contactforms.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/contactforms/{id}": {
            "get": {
                "tags": [
                    "contactforms"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": 1
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Object",
                                            "example": "https://localhost/shop/api/v2/private/contactforms/1"
                                        },
                                        "name": {
                                            "type": "string",
                                            "description": "Interne Bezeichnung",
                                            "example": "Allgemeine Anfrage"
                                        },
                                        "subject": {
                                            "type": "string",
                                            "description": "Betreff im Kontaktformular",
                                            "example": "Allgemeine Anfrage"
                                        },
                                        "recipient_email": {
                                            "type": "string",
                                            "format": "email",
                                            "description": "Empfaenger-E-Mail-Adresse",
                                            "example": "service@example.com"
                                        },
                                        "multishop_id": {
                                            "type": "integer",
                                            "description": "Id des Multishops",
                                            "example": 1
                                        },
                                        "response_enabled": {
                                            "type": "boolean",
                                            "description": "Automatische Antwortmail aktiv",
                                            "example": true
                                        },
                                        "response_text": {
                                            "type": "string",
                                            "description": "Antwortmail im Textformat",
                                            "example": "Vielen Dank fuer Ihre Anfrage."
                                        },
                                        "response_html": {
                                            "type": "string",
                                            "description": "Antwortmail im HTML-Format",
                                            "example": "<p>Vielen Dank fuer Ihre Anfrage.</p>"
                                        },
                                        "subject_order": {
                                            "type": "integer",
                                            "description": "Sortierung des Betreffs",
                                            "example": 10
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/contactforms/1",
                                    "name": "Allgemeine Anfrage",
                                    "subject": "Allgemeine Anfrage",
                                    "recipient_email": "service@example.com",
                                    "multishop_id": 1,
                                    "response_enabled": true,
                                    "response_text": "Vielen Dank fuer Ihre Anfrage.",
                                    "response_html": "<p>Vielen Dank fuer Ihre Anfrage.</p>",
                                    "subject_order": 10
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Kontaktformular-Konfiguration abrufen.",
                "description": "Liefert Daten zu einer Kontaktformular-Konfiguration.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContactformsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Kontaktformular-Konfigurations-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contactforms.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contactforms.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "contactforms"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Kontaktformular-Konfiguration aktualisieren.",
                "description": "Aktualisiert eine Kontaktformular-Konfiguration.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutContactformsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Kontaktformular-Konfigurations-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Interne Bezeichnung",
                                        "example": "Allgemeine Anfrage"
                                    },
                                    "subject": {
                                        "type": "string",
                                        "description": "Betreff im Kontaktformular",
                                        "example": "Allgemeine Anfrage"
                                    },
                                    "recipient_email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "Empfaenger-E-Mail-Adresse",
                                        "example": "service@example.com"
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Id des Multishops",
                                        "example": 1
                                    },
                                    "response_enabled": {
                                        "type": "boolean",
                                        "description": "Automatische Antwortmail aktiv",
                                        "example": true
                                    },
                                    "response_text": {
                                        "type": "string",
                                        "description": "Antwortmail im Textformat",
                                        "example": "Vielen Dank fuer Ihre Anfrage."
                                    },
                                    "response_html": {
                                        "type": "string",
                                        "description": "Antwortmail im HTML-Format",
                                        "example": "<p>Vielen Dank fuer Ihre Anfrage.</p>"
                                    },
                                    "subject_order": {
                                        "type": "integer",
                                        "description": "Sortierung des Betreffs",
                                        "example": 10
                                    }
                                }
                            },
                            "example": {
                                "recipient_email": "support@example.com",
                                "response_enabled": false
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contactforms.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contactforms.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "contactforms"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Kontaktformular-Konfiguration loeschen.",
                "description": "Loescht eine Kontaktformular-Konfiguration.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteContactformsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Kontaktformular-Konfigurations-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contactforms.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contactforms.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/contactforms/search": {
            "get": {
                "tags": [
                    "contactforms"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "v2/docs/returns/Contactforms/get_contactform.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/contactforms/1",
                                        "name": "Allgemeine Anfrage",
                                        "subject": "Allgemeine Anfrage",
                                        "recipient_email": "service@example.com",
                                        "multishop_id": 1,
                                        "response_enabled": true,
                                        "response_text": "Vielen Dank fuer Ihre Anfrage.",
                                        "response_html": "<p>Vielen Dank fuer Ihre Anfrage.</p>",
                                        "subject_order": 10
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Kontaktformular-Konfigurationen nach einem String.",
                "description": "Sucht in Kontaktformular-Konfigurationen nach interner Bezeichnung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContactformsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contactforms.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contactforms.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/content/{id}": {
            "get": {
                "tags": [
                    "content"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Eindeutige ID des Inhalts"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API-URL zu diesem Inhaltselement"
                                        },
                                        "link": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "\u00d6ffentliche URL zur Seite oder zum Inhalt"
                                        },
                                        "title": {
                                            "type": "string",
                                            "description": "Titel oder \u00dcberschrift des Inhalts"
                                        },
                                        "content": {
                                            "type": "string",
                                            "description": "Vollst\u00e4ndiger HTML-/Textinhalt"
                                        },
                                        "preview_text": {
                                            "type": "string",
                                            "description": "Kurzbeschreibung oder Teasertext"
                                        },
                                        "link_text": {
                                            "type": "string",
                                            "description": "Anzeigetext f\u00fcr weiterf\u00fchrenden Link"
                                        },
                                        "meta_name": {
                                            "type": "string",
                                            "description": "Meta-Titel (SEO)"
                                        },
                                        "meta_description": {
                                            "type": "string",
                                            "description": "Meta-Beschreibung (SEO)"
                                        },
                                        "meta_additive": {
                                            "type": "string",
                                            "description": "Zus\u00e4tzliche Meta-Informationen"
                                        },
                                        "preview_img": {
                                            "type": "object",
                                            "nullable": true,
                                            "description": "Vorschaubildinformationen (falls vorhanden)",
                                            "properties": {
                                                "img": {
                                                    "type": "string",
                                                    "description": "Dateiname des Bildes"
                                                },
                                                "path": {
                                                    "type": "string",
                                                    "description": "Pfad zum Bild relativ zum Webroot"
                                                },
                                                "stream": {
                                                    "type": "string",
                                                    "description": "Base64-kodierter Bildinhalt"
                                                }
                                            }
                                        },
                                        "permalink": {
                                            "type": "string",
                                            "description": "Permalink (sprechende URL)"
                                        },
                                        "multishop_id": {
                                            "type": "integer",
                                            "description": "ID des Multishop-Kontexts"
                                        },
                                        "parent_id": {
                                            "type": "integer",
                                            "description": "ID der \u00fcbergeordneten Seite (falls vorhanden)"
                                        },
                                        "sidebar_order": {
                                            "type": "integer",
                                            "description": "Sortierreihenfolge in der Sidebar"
                                        },
                                        "show_in_sidebar": {
                                            "type": "boolean",
                                            "description": "Anzeige in der Sidebar aktiviert"
                                        },
                                        "show_child_pages": {
                                            "type": "boolean",
                                            "description": "Unterseiten anzeigen"
                                        },
                                        "show_searchbox": {
                                            "type": "boolean",
                                            "description": "Suchbox auf der Seite anzeigen"
                                        },
                                        "search_childs": {
                                            "type": "boolean",
                                            "description": "Suche bezieht Unterseiten ein"
                                        },
                                        "exclude_search": {
                                            "type": "boolean",
                                            "description": "Von der Suche ausschlie\u00dfen"
                                        },
                                        "cache_page": {
                                            "type": "boolean",
                                            "description": "Seite wird gecacht"
                                        },
                                        "h1title": {
                                            "type": "boolean",
                                            "description": "Verwendet H1-Titel aus Spezialdaten"
                                        },
                                        "layout_id": {
                                            "type": "integer",
                                            "description": "Layout-Vorlagen-ID"
                                        },
                                        "datetime_create": {
                                            "type": "string",
                                            "format": "date-time",
                                            "description": "Erstellungsdatum des Inhalts"
                                        },
                                        "datetime_change": {
                                            "type": "string",
                                            "format": "date-time",
                                            "description": "Letzte \u00c4nderung am Inhalt"
                                        },
                                        "sub_title": {
                                            "type": "string",
                                            "description": "Sub-Headline der Contentseite"
                                        },
                                        "fb_og_title": {
                                            "type": "string",
                                            "description": "OpenGraph-Titel"
                                        },
                                        "fb_og_description": {
                                            "type": "string",
                                            "description": "OpenGraph-Beschreibung"
                                        },
                                        "fb_og_img": {
                                            "type": "object",
                                            "nullable": true,
                                            "description": "OpenGraph-Bildinformationen (falls vorhanden)",
                                            "properties": {
                                                "img": {
                                                    "type": "string",
                                                    "description": "Dateiname des Bildes"
                                                },
                                                "path": {
                                                    "type": "string",
                                                    "description": "Pfad zum Bild relativ zum Webroot"
                                                },
                                                "stream": {
                                                    "type": "string",
                                                    "description": "Base64-kodierter Bildinhalt"
                                                }
                                            }
                                        },
                                        "type": {
                                            "type": "integer",
                                            "description": "Seitentyp: 0 Contentseite, 1 Blogbeitrag"
                                        },
                                        "active": {
                                            "type": "boolean",
                                            "description": "Aktivstatus der Seite"
                                        },
                                        "only_login": {
                                            "type": "boolean",
                                            "description": "Nur fuer eingeloggte Kunden sichtbar"
                                        },
                                        "customer_group_ids": {
                                            "type": "array",
                                            "description": "Erlaubte Kundengruppen-IDs bei only_login",
                                            "items": {
                                                "type": "integer"
                                            }
                                        },
                                        "sitemap_exclude": {
                                            "type": "boolean",
                                            "description": "Seite nicht in die Sitemap aufnehmen"
                                        },
                                        "container_width": {
                                            "type": "integer",
                                            "description": "Seitenbreite: 0 Standard, 1 normale Breite, 2 100% mit Abstand, 3 100% ohne Abstand"
                                        },
                                        "sitemap_priority": {
                                            "type": "number",
                                            "description": "Sitemap-Prioritaet"
                                        },
                                        "publish_at": {
                                            "type": "string",
                                            "description": "Veroeffentlichungsdatum fuer Blogbeitraege, Format YYYY-MM-DD HH:MM:SS"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 42,
                                    "location": "https://shop.local/api/v2/private/content/42",
                                    "link": "https://shop.local/agb",
                                    "title": "Allgemeine Gesch\u00e4ftsbedingungen (AGB)",
                                    "content": "<h1>Allgemeine Gesch\u00e4ftsbedingungen</h1><p>Diese AGB gelten f\u00fcr alle Bestellungen im Onlineshop der Musterfirma GmbH...</p>",
                                    "preview_text": "Unsere aktuellen AGB f\u00fcr Onlinebestellungen.",
                                    "link_text": "Jetzt AGB lesen",
                                    "meta_name": "AGB - Musterfirma",
                                    "meta_description": "Lesen Sie hier die aktuellen Allgemeinen Gesch\u00e4ftsbedingungen der Musterfirma GmbH.",
                                    "meta_additive": "Online-Shop, Vertragsbedingungen, Kaufrecht",
                                    "preview_img": {
                                        "img": "agb-header.jpg",
                                        "path": "images/content/",
                                        "stream": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAD..."
                                    },
                                    "permalink": "agb",
                                    "multishop_id": 1,
                                    "parent_id": 10,
                                    "sidebar_order": 2,
                                    "show_in_sidebar": true,
                                    "show_child_pages": false,
                                    "show_searchbox": false,
                                    "search_childs": false,
                                    "exclude_search": false,
                                    "cache_page": true,
                                    "h1title": true,
                                    "layout_id": 3,
                                    "datetime_create": "2024-02-15T10:45:00Z",
                                    "datetime_change": "2025-10-28T14:12:00Z",
                                    "sub_title": "Rechtliche Hinweise fuer Bestellungen",
                                    "fb_og_title": "AGB der Musterfirma GmbH",
                                    "fb_og_description": "Aktuelle Allgemeine Geschaeftsbedingungen der Musterfirma GmbH.",
                                    "fb_og_img": {
                                        "img": "agb-og.jpg",
                                        "stream": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAD...",
                                        "path": "images/content/"
                                    },
                                    "type": 0,
                                    "active": true,
                                    "only_login": false,
                                    "customer_group_ids": [],
                                    "sitemap_exclude": false,
                                    "container_width": 0,
                                    "sitemap_priority": 0.5,
                                    "publish_at": "0000-00-00 00:00:00"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Contentseite abrufen.",
                "description": "Liefert Daten f\u00fcr eine Contentseite.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContentDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "ContentPage-ID"
                    },
                    {
                        "name": "lang_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Die Id der Sprache, wenn nicht gesetzt Default:Standardsprache"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "content.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "content.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "content"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Contentseite aktualisieren.",
                "description": "Aktualisiert die Daten einer Contentseite.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutContentDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "ContentPage-ID"
                    },
                    {
                        "name": "lang_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Die Id der Sprache, wenn nicht gesetzt Default:Standardsprache"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "description": "Titel oder \u00dcberschrift der Seite"
                                    },
                                    "content": {
                                        "type": "string",
                                        "description": "HTML- oder Textinhalt der Seite"
                                    },
                                    "preview_text": {
                                        "type": "string",
                                        "description": "Kurzbeschreibung oder Teasertext f\u00fcr Vorschau"
                                    },
                                    "link_text": {
                                        "type": "string",
                                        "description": "Anzeigetext f\u00fcr weiterf\u00fchrenden Link"
                                    },
                                    "meta_name": {
                                        "type": "string",
                                        "description": "Meta-Titel (SEO)"
                                    },
                                    "meta_description": {
                                        "type": "string",
                                        "description": "Meta-Beschreibung (SEO)"
                                    },
                                    "meta_additive": {
                                        "type": "string",
                                        "description": "Zus\u00e4tzliche Meta-Informationen"
                                    },
                                    "preview_img": {
                                        "type": "object",
                                        "nullable": true,
                                        "description": "Optionales Vorschaubild. Zum Hochladen img und stream (Base64-kodiert) uebergeben, zum Entfernen null oder remove=true uebergeben.",
                                        "properties": {
                                            "img": {
                                                "type": "string",
                                                "description": "Dateiname des hochzuladenden Bildes (z. B. agb.jpg)"
                                            },
                                            "stream": {
                                                "type": "string",
                                                "description": "Base64-kodierter Bildinhalt"
                                            },
                                            "remove": {
                                                "type": "boolean",
                                                "description": "Vorhandenes Bild entfernen"
                                            }
                                        }
                                    },
                                    "permalink": {
                                        "type": "string",
                                        "description": "Sprechende URL der Seite (Permalink)"
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Multishop-Kontext, in dem die Seite gespeichert wird"
                                    },
                                    "parent_id": {
                                        "type": "integer",
                                        "description": "ID der \u00fcbergeordneten Seite (falls Unterseite)"
                                    },
                                    "sidebar_order": {
                                        "type": "integer",
                                        "description": "Sortierreihenfolge der Seite in der Sidebar"
                                    },
                                    "show_in_sidebar": {
                                        "type": "boolean",
                                        "description": "Soll die Seite in der Sidebar angezeigt werden?"
                                    },
                                    "show_child_pages": {
                                        "type": "boolean",
                                        "description": "Unterseiten automatisch mit anzeigen?"
                                    },
                                    "show_searchbox": {
                                        "type": "boolean",
                                        "description": "Suchbox auf dieser Seite anzeigen?"
                                    },
                                    "search_childs": {
                                        "type": "boolean",
                                        "description": "Unterseiten in die Suche einbeziehen?"
                                    },
                                    "exclude_search": {
                                        "type": "boolean",
                                        "description": "Seite von der internen Suche ausschlie\u00dfen?"
                                    },
                                    "cache_page": {
                                        "type": "boolean",
                                        "description": "Seite vom Cache ausschliessen (Admin: Seite nicht cachen)"
                                    },
                                    "h1title": {
                                        "type": "boolean",
                                        "description": "H1-Titel aus Spezialdaten aktivieren?"
                                    },
                                    "layout_id": {
                                        "type": "integer",
                                        "description": "Layout-Vorlagen-ID"
                                    },
                                    "datetime_create": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Erstellungsdatum (optional, meist nur bei Importen)"
                                    },
                                    "datetime_change": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Datum der letzten \u00c4nderung (standardm\u00e4\u00dfig aktuelle Zeit)"
                                    },
                                    "sub_title": {
                                        "type": "string",
                                        "description": "Sub-Headline der Contentseite"
                                    },
                                    "fb_og_title": {
                                        "type": "string",
                                        "description": "OpenGraph-Titel"
                                    },
                                    "fb_og_description": {
                                        "type": "string",
                                        "description": "OpenGraph-Beschreibung"
                                    },
                                    "fb_og_img": {
                                        "type": "object",
                                        "nullable": true,
                                        "description": "Optionales OpenGraph-Bild. Zum Hochladen img und stream (Base64-kodiert) uebergeben, zum Entfernen null oder remove=true uebergeben.",
                                        "properties": {
                                            "img": {
                                                "type": "string",
                                                "description": "Dateiname des hochzuladenden Bildes"
                                            },
                                            "stream": {
                                                "type": "string",
                                                "description": "Base64-kodierter Bildinhalt"
                                            },
                                            "remove": {
                                                "type": "boolean",
                                                "description": "Vorhandenes Bild entfernen"
                                            }
                                        }
                                    },
                                    "type": {
                                        "type": "integer",
                                        "description": "Seitentyp: 0 Contentseite, 1 Blogbeitrag"
                                    },
                                    "active": {
                                        "type": "boolean",
                                        "description": "Aktivstatus der Seite"
                                    },
                                    "only_login": {
                                        "type": "boolean",
                                        "description": "Nur fuer eingeloggte Kunden sichtbar"
                                    },
                                    "customer_group_ids": {
                                        "type": "array",
                                        "description": "Erlaubte Kundengruppen-IDs bei only_login",
                                        "items": {
                                            "type": "integer"
                                        }
                                    },
                                    "sitemap_exclude": {
                                        "type": "boolean",
                                        "description": "Seite nicht in die Sitemap aufnehmen"
                                    },
                                    "container_width": {
                                        "type": "integer",
                                        "description": "Seitenbreite: 0 Standard, 1 normale Breite, 2 100% mit Abstand, 3 100% ohne Abstand"
                                    },
                                    "sitemap_priority": {
                                        "type": "number",
                                        "description": "Sitemap-Prioritaet"
                                    },
                                    "publish_at": {
                                        "type": "string",
                                        "description": "Veroeffentlichungsdatum fuer Blogbeitraege, Format YYYY-MM-DD HH:MM:SS"
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            },
                            "example": {
                                "title": "Allgemeine Gesch\u00e4ftsbedingungen (AGB)",
                                "content": "<h1>Allgemeine Gesch\u00e4ftsbedingungen</h1><p>Diese Bedingungen gelten f\u00fcr alle K\u00e4ufe im Onlineshop der Musterfirma GmbH. Bitte lesen Sie sie sorgf\u00e4ltig durch...</p>",
                                "preview_text": "Unsere aktuellen AGB f\u00fcr alle Bestellungen im Onlineshop.",
                                "link_text": "AGB anzeigen",
                                "meta_name": "AGB - Musterfirma GmbH",
                                "meta_description": "Lesen Sie die aktuellen Allgemeinen Gesch\u00e4ftsbedingungen f\u00fcr Onlinek\u00e4ufe bei der Musterfirma GmbH.",
                                "meta_additive": "Vertragsbedingungen, Kaufrecht, Onlinehandel",
                                "preview_img": {
                                    "img": "agb-header.jpg",
                                    "stream": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAD..."
                                },
                                "permalink": "agb",
                                "multishop_id": 1,
                                "parent_id": 10,
                                "sidebar_order": 2,
                                "show_in_sidebar": true,
                                "show_child_pages": false,
                                "show_searchbox": false,
                                "search_childs": false,
                                "exclude_search": false,
                                "cache_page": true,
                                "h1title": true,
                                "layout_id": 3,
                                "datetime_create": "2024-02-15T10:45:00Z",
                                "datetime_change": "2025-10-28T14:12:00Z",
                                "sub_title": "Rechtliche Hinweise fuer Bestellungen",
                                "fb_og_title": "AGB der Musterfirma GmbH",
                                "fb_og_description": "Aktuelle Allgemeine Geschaeftsbedingungen der Musterfirma GmbH.",
                                "fb_og_img": {
                                    "img": "agb-og.jpg",
                                    "stream": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAD..."
                                },
                                "type": 0,
                                "active": true,
                                "only_login": false,
                                "customer_group_ids": [],
                                "sitemap_exclude": false,
                                "container_width": 0,
                                "sitemap_priority": 0.5,
                                "publish_at": "0000-00-00 00:00:00"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "content.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "content.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "content"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Eine Contentseite loeschen.",
                "description": "Loescht eine Contentseite inklusive Vorschau- und OpenGraph-Bild. Unterseiten werden nicht automatisch geloescht.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteContentDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "ContentPage-ID"
                    },
                    {
                        "name": "lang_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Die Id der Sprache, wenn nicht gesetzt Default:Standardsprache"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "content.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "content.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/content/search": {
            "get": {
                "tags": [
                    "content"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Ein Array mit den gefundenen Seiten mit Detailangaben",
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/paths/~1private~1content~1{id}/get/responses/200/content/application~1json/schema"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 123,
                                        "location": "https://localhost/shop/api/v2/private/content/123",
                                        "link": "https://localhost/agb",
                                        "title": "Allgemeine Gesch\u00e4ftsbedingungen (AGB)"
                                    },
                                    {
                                        "id": 124,
                                        "location": "https://localhost/shop/api/v2/private/content/124",
                                        "link": "https://localhost/versandkosten",
                                        "title": "Versandkosten"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Contentseiten nach einem String",
                "description": "Sucht in Contentseite nach einem String.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContentSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    },
                    {
                        "name": "lang_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Id der Sprache"
                    },
                    {
                        "name": "multishop_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Id des Multishop"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "content.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "content.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/content/{id}/search": {
            "get": {
                "tags": [
                    "content"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Ein Array mit den gefundenen Seiten mit Detailangaben",
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/paths/~1private~1content~1{id}/get/responses/200/content/application~1json/schema"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 123,
                                        "location": "https://localhost/shop/api/v2/private/content/123",
                                        "link": "https://localhost/agb",
                                        "title": "Allgemeine Gesch\u00e4ftsbedingungen (AGB)"
                                    },
                                    {
                                        "id": 124,
                                        "location": "https://localhost/shop/api/v2/private/content/124",
                                        "link": "https://localhost/versandkosten",
                                        "title": "Versandkosten"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Contentseiten nach einem String beginnend ab der Seite ID",
                "description": "Sucht in Contentseite nach einem String.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContentSearchbyidPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "ContentPage-ID die Id der zu durchsuchenden Seite (ggf Unterseiten, je nach Einstellung in der Seite)"
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    },
                    {
                        "name": "lang_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Id der Sprache"
                    },
                    {
                        "name": "multishop_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Id des Multishop"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "content.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "content.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/content/{id}/children": {
            "get": {
                "tags": [
                    "content"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "parent_id": {
                                            "type": "integer",
                                            "description": "ID der abgefragten Contentseite"
                                        },
                                        "recursive": {
                                            "type": "boolean",
                                            "description": "Gibt an, ob Unterseiten rekursiv geliefert wurden"
                                        },
                                        "show_in_sidebar": {
                                            "type": "boolean",
                                            "description": "Gibt an, ob nur in der Sidebar sichtbare Unterseiten geliefert wurden"
                                        },
                                        "count": {
                                            "type": "integer",
                                            "description": "Anzahl der direkt in items enthaltenen Unterseiten"
                                        },
                                        "items": {
                                            "type": "array",
                                            "description": "Liste der Unterseiten",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "description": "ContentPage-ID der Unterseite"
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "format": "uri",
                                                        "description": "API-URL zu dieser Contentseite"
                                                    },
                                                    "title": {
                                                        "type": "string",
                                                        "description": "Titel der Unterseite"
                                                    },
                                                    "children": {
                                                        "type": "array",
                                                        "description": "Rekursive Unterseiten, nur bei recursive=true",
                                                        "items": {
                                                            "type": "object"
                                                        }
                                                    }
                                                },
                                                "required": [
                                                    "id",
                                                    "location",
                                                    "title"
                                                ]
                                            }
                                        }
                                    },
                                    "required": [
                                        "parent_id",
                                        "recursive",
                                        "show_in_sidebar",
                                        "count",
                                        "items"
                                    ]
                                },
                                "example": {
                                    "parent_id": 306,
                                    "recursive": false,
                                    "show_in_sidebar": true,
                                    "count": 2,
                                    "items": [
                                        {
                                            "id": 307,
                                            "location": "https://localhost/shop/api/v2/private/content/307",
                                            "title": "Allgemeines",
                                            "children": [
                                                {
                                                    "id": 309,
                                                    "location": "https://localhost/shop/api/v2/private/content/309",
                                                    "title": "Installation"
                                                }
                                            ]
                                        },
                                        {
                                            "id": 308,
                                            "location": "https://localhost/shop/api/v2/private/content/308",
                                            "title": "Einstellungen"
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Unterseiten einer Contentseite abrufen.",
                "description": "Liefert die direkten Unterseiten einer Contentseite mit ID, API-Location und Titel. Details koennen per GET auf die jeweilige Location abgerufen werden. Optional rekursiv.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContentChildrenPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "ContentPage-ID"
                    },
                    {
                        "name": "recursive",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden alle Unterseiten rekursiv geliefert."
                    },
                    {
                        "name": "show_in_sidebar",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden nur Unterseiten geliefert, die in der Sidebar sichtbar sind."
                    },
                    {
                        "name": "lang_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Die Id der Sprache, wenn nicht gesetzt Default:Standardsprache"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "content.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "content.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/content": {
            "post": {
                "tags": [
                    "content"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Contentseite erstellen.",
                "description": "Erstellt eine Contentseite in der Standardsprache des Shops. Weitere Sprachen update ausf\u00fchren.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostContentPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "description": "Titel oder \u00dcberschrift der Seite"
                                    },
                                    "content": {
                                        "type": "string",
                                        "description": "HTML- oder Textinhalt der Seite"
                                    },
                                    "preview_text": {
                                        "type": "string",
                                        "description": "Kurzbeschreibung oder Teasertext f\u00fcr Vorschau"
                                    },
                                    "link_text": {
                                        "type": "string",
                                        "description": "Anzeigetext f\u00fcr weiterf\u00fchrenden Link"
                                    },
                                    "meta_name": {
                                        "type": "string",
                                        "description": "Meta-Titel (SEO)"
                                    },
                                    "meta_description": {
                                        "type": "string",
                                        "description": "Meta-Beschreibung (SEO)"
                                    },
                                    "meta_additive": {
                                        "type": "string",
                                        "description": "Zus\u00e4tzliche Meta-Informationen"
                                    },
                                    "preview_img": {
                                        "type": "object",
                                        "nullable": true,
                                        "description": "Optionales Vorschaubild. Zum Hochladen img und stream (Base64-kodiert) uebergeben, zum Entfernen null oder remove=true uebergeben.",
                                        "properties": {
                                            "img": {
                                                "type": "string",
                                                "description": "Dateiname des hochzuladenden Bildes (z. B. agb.jpg)"
                                            },
                                            "stream": {
                                                "type": "string",
                                                "description": "Base64-kodierter Bildinhalt"
                                            },
                                            "remove": {
                                                "type": "boolean",
                                                "description": "Vorhandenes Bild entfernen"
                                            }
                                        }
                                    },
                                    "permalink": {
                                        "type": "string",
                                        "description": "Sprechende URL der Seite (Permalink)"
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Multishop-Kontext, in dem die Seite gespeichert wird"
                                    },
                                    "parent_id": {
                                        "type": "integer",
                                        "description": "ID der \u00fcbergeordneten Seite (falls Unterseite)"
                                    },
                                    "sidebar_order": {
                                        "type": "integer",
                                        "description": "Sortierreihenfolge der Seite in der Sidebar"
                                    },
                                    "show_in_sidebar": {
                                        "type": "boolean",
                                        "description": "Soll die Seite in der Sidebar angezeigt werden?"
                                    },
                                    "show_child_pages": {
                                        "type": "boolean",
                                        "description": "Unterseiten automatisch mit anzeigen?"
                                    },
                                    "show_searchbox": {
                                        "type": "boolean",
                                        "description": "Suchbox auf dieser Seite anzeigen?"
                                    },
                                    "search_childs": {
                                        "type": "boolean",
                                        "description": "Unterseiten in die Suche einbeziehen?"
                                    },
                                    "exclude_search": {
                                        "type": "boolean",
                                        "description": "Seite von der internen Suche ausschlie\u00dfen?"
                                    },
                                    "cache_page": {
                                        "type": "boolean",
                                        "description": "Seite vom Cache ausschliessen (Admin: Seite nicht cachen)"
                                    },
                                    "h1title": {
                                        "type": "boolean",
                                        "description": "H1-Titel aus Spezialdaten aktivieren?"
                                    },
                                    "layout_id": {
                                        "type": "integer",
                                        "description": "Layout-Vorlagen-ID"
                                    },
                                    "datetime_create": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Erstellungsdatum (optional, meist nur bei Importen)"
                                    },
                                    "datetime_change": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Datum der letzten \u00c4nderung (standardm\u00e4\u00dfig aktuelle Zeit)"
                                    },
                                    "sub_title": {
                                        "type": "string",
                                        "description": "Sub-Headline der Contentseite"
                                    },
                                    "fb_og_title": {
                                        "type": "string",
                                        "description": "OpenGraph-Titel"
                                    },
                                    "fb_og_description": {
                                        "type": "string",
                                        "description": "OpenGraph-Beschreibung"
                                    },
                                    "fb_og_img": {
                                        "type": "object",
                                        "nullable": true,
                                        "description": "Optionales OpenGraph-Bild. Zum Hochladen img und stream (Base64-kodiert) uebergeben, zum Entfernen null oder remove=true uebergeben.",
                                        "properties": {
                                            "img": {
                                                "type": "string",
                                                "description": "Dateiname des hochzuladenden Bildes"
                                            },
                                            "stream": {
                                                "type": "string",
                                                "description": "Base64-kodierter Bildinhalt"
                                            },
                                            "remove": {
                                                "type": "boolean",
                                                "description": "Vorhandenes Bild entfernen"
                                            }
                                        }
                                    },
                                    "type": {
                                        "type": "integer",
                                        "description": "Seitentyp: 0 Contentseite, 1 Blogbeitrag"
                                    },
                                    "active": {
                                        "type": "boolean",
                                        "description": "Aktivstatus der Seite"
                                    },
                                    "only_login": {
                                        "type": "boolean",
                                        "description": "Nur fuer eingeloggte Kunden sichtbar"
                                    },
                                    "customer_group_ids": {
                                        "type": "array",
                                        "description": "Erlaubte Kundengruppen-IDs bei only_login",
                                        "items": {
                                            "type": "integer"
                                        }
                                    },
                                    "sitemap_exclude": {
                                        "type": "boolean",
                                        "description": "Seite nicht in die Sitemap aufnehmen"
                                    },
                                    "container_width": {
                                        "type": "integer",
                                        "description": "Seitenbreite: 0 Standard, 1 normale Breite, 2 100% mit Abstand, 3 100% ohne Abstand"
                                    },
                                    "sitemap_priority": {
                                        "type": "number",
                                        "description": "Sitemap-Prioritaet"
                                    },
                                    "publish_at": {
                                        "type": "string",
                                        "description": "Veroeffentlichungsdatum fuer Blogbeitraege, Format YYYY-MM-DD HH:MM:SS"
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            },
                            "example": {
                                "title": "Allgemeine Gesch\u00e4ftsbedingungen (AGB)",
                                "content": "<h1>Allgemeine Gesch\u00e4ftsbedingungen</h1><p>Diese Bedingungen gelten f\u00fcr alle K\u00e4ufe im Onlineshop der Musterfirma GmbH. Bitte lesen Sie sie sorgf\u00e4ltig durch...</p>",
                                "preview_text": "Unsere aktuellen AGB f\u00fcr alle Bestellungen im Onlineshop.",
                                "link_text": "AGB anzeigen",
                                "meta_name": "AGB - Musterfirma GmbH",
                                "meta_description": "Lesen Sie die aktuellen Allgemeinen Gesch\u00e4ftsbedingungen f\u00fcr Onlinek\u00e4ufe bei der Musterfirma GmbH.",
                                "meta_additive": "Vertragsbedingungen, Kaufrecht, Onlinehandel",
                                "preview_img": {
                                    "img": "agb-header.jpg",
                                    "stream": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAD..."
                                },
                                "permalink": "agb",
                                "multishop_id": 1,
                                "parent_id": 10,
                                "sidebar_order": 2,
                                "show_in_sidebar": true,
                                "show_child_pages": false,
                                "show_searchbox": false,
                                "search_childs": false,
                                "exclude_search": false,
                                "cache_page": true,
                                "h1title": true,
                                "layout_id": 3,
                                "datetime_create": "2024-02-15T10:45:00Z",
                                "datetime_change": "2025-10-28T14:12:00Z",
                                "sub_title": "Rechtliche Hinweise fuer Bestellungen",
                                "fb_og_title": "AGB der Musterfirma GmbH",
                                "fb_og_description": "Aktuelle Allgemeine Geschaeftsbedingungen der Musterfirma GmbH.",
                                "fb_og_img": {
                                    "img": "agb-og.jpg",
                                    "stream": "iVBORw0KGgoAAAANSUhEUgAAAoAAAAHgCAYAAAD..."
                                },
                                "type": 0,
                                "active": true,
                                "only_login": false,
                                "customer_group_ids": [],
                                "sitemap_exclude": false,
                                "container_width": 0,
                                "sitemap_priority": 0.5,
                                "publish_at": "0000-00-00 00:00:00"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "content.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "content.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/contentlines": {
            "get": {
                "tags": [
                    "contentlines"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "location": {
                                                        "type": "string"
                                                    },
                                                    "row_id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "sort_order": {
                                                        "type": "integer"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    },
                                                    "show_desktop": {
                                                        "type": "boolean"
                                                    },
                                                    "show_mobile": {
                                                        "type": "boolean"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/contentlines/1",
                                            "row_id": 1,
                                            "name": "Inhaltsbereich",
                                            "sort_order": 1,
                                            "active": true,
                                            "show_desktop": true,
                                            "show_mobile": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 10,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Contentlines abrufen.",
                "description": "Liefert eine paginierte Liste fuer Contentlines.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContentlinesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentlines.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentlines.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "contentlines"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "location": {
                                                    "type": "string"
                                                },
                                                "row_id": {
                                                    "type": "integer"
                                                },
                                                "content_row_location": {
                                                    "type": "string"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "sort_order": {
                                                    "type": "integer"
                                                },
                                                "css_classes": {
                                                    "type": "string"
                                                },
                                                "background_color": {
                                                    "type": "string"
                                                },
                                                "is_fullsize": {
                                                    "type": "integer",
                                                    "enum": [
                                                        0,
                                                        1,
                                                        2
                                                    ]
                                                },
                                                "is_jumbotron": {
                                                    "type": "boolean"
                                                },
                                                "active": {
                                                    "type": "boolean"
                                                },
                                                "show_desktop": {
                                                    "type": "boolean"
                                                },
                                                "show_mobile": {
                                                    "type": "boolean"
                                                },
                                                "customer_group_ids": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "integer"
                                                    }
                                                },
                                                "content_modules_location": {
                                                    "type": "string"
                                                },
                                                "content_modules": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "location": {
                                                                "type": "string"
                                                            },
                                                            "row_id": {
                                                                "type": "integer"
                                                            },
                                                            "content_line_id": {
                                                                "type": "integer"
                                                            },
                                                            "module_type": {
                                                                "type": "string"
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "sort_order": {
                                                                "type": "integer"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/contentlines/1",
                                        "row_id": 1,
                                        "content_row_location": "https://localhost/shop/api/v2/private/contentrows/1",
                                        "name": "Inhaltsbereich",
                                        "sort_order": 1,
                                        "css_classes": "",
                                        "background_color": "",
                                        "is_fullsize": 0,
                                        "is_jumbotron": false,
                                        "active": true,
                                        "show_desktop": true,
                                        "show_mobile": true,
                                        "customer_group_ids": [],
                                        "content_modules_location": "https://localhost/shop/api/v2/private/contentlines/1/modules",
                                        "content_modules": [
                                            {
                                                "id": 1,
                                                "location": "https://localhost/shop/api/v2/private/contentmodules/1",
                                                "row_id": 1,
                                                "content_line_id": 1,
                                                "module_type": "Text",
                                                "label": "Start text",
                                                "sort_order": 1,
                                                "active": true
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Content-Zeile anlegen.",
                "description": "Legt eine Zeile in einem bestehenden Content-Setup an. Ohne sort_order wird sie hinten angehaengt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostContentlinesPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "row_id"
                                ],
                                "additionalProperties": false,
                                "properties": {
                                    "row_id": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "description": "ID des Content-Setups"
                                    },
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "sort_order": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 65535,
                                        "description": "Ohne Angabe hinten anhaengen; komplette Neuordnung ueber PUT /private/contentrows/{id}/lines"
                                    },
                                    "css_classes": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "background_color": {
                                        "type": "string",
                                        "maxLength": 10
                                    },
                                    "is_fullsize": {
                                        "type": "integer",
                                        "enum": [
                                            0,
                                            1,
                                            2
                                        ]
                                    },
                                    "is_jumbotron": {
                                        "type": "boolean"
                                    },
                                    "active": {
                                        "type": "boolean"
                                    },
                                    "show_desktop": {
                                        "type": "boolean"
                                    },
                                    "show_mobile": {
                                        "type": "boolean"
                                    },
                                    "customer_group_ids": {
                                        "type": "array",
                                        "uniqueItems": true,
                                        "items": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "description": "Leeres Array: fuer alle Kundengruppen"
                                    }
                                }
                            },
                            "example": {
                                "row_id": 1,
                                "name": "Sommeraktion",
                                "css_classes": "summer-promotion",
                                "background_color": "#ffffff",
                                "is_fullsize": 1,
                                "is_jumbotron": false,
                                "active": true,
                                "show_desktop": true,
                                "show_mobile": true,
                                "customer_group_ids": []
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentlines.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentlines.create"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/contentlines/{id}": {
            "get": {
                "tags": [
                    "contentlines"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "location": {
                                                    "type": "string"
                                                },
                                                "row_id": {
                                                    "type": "integer"
                                                },
                                                "content_row_location": {
                                                    "type": "string"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "sort_order": {
                                                    "type": "integer"
                                                },
                                                "css_classes": {
                                                    "type": "string"
                                                },
                                                "background_color": {
                                                    "type": "string"
                                                },
                                                "is_fullsize": {
                                                    "type": "integer",
                                                    "enum": [
                                                        0,
                                                        1,
                                                        2
                                                    ]
                                                },
                                                "is_jumbotron": {
                                                    "type": "boolean"
                                                },
                                                "active": {
                                                    "type": "boolean"
                                                },
                                                "show_desktop": {
                                                    "type": "boolean"
                                                },
                                                "show_mobile": {
                                                    "type": "boolean"
                                                },
                                                "customer_group_ids": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "integer"
                                                    }
                                                },
                                                "content_modules_location": {
                                                    "type": "string"
                                                },
                                                "content_modules": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "location": {
                                                                "type": "string"
                                                            },
                                                            "row_id": {
                                                                "type": "integer"
                                                            },
                                                            "content_line_id": {
                                                                "type": "integer"
                                                            },
                                                            "module_type": {
                                                                "type": "string"
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "sort_order": {
                                                                "type": "integer"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/contentlines/1",
                                        "row_id": 1,
                                        "content_row_location": "https://localhost/shop/api/v2/private/contentrows/1",
                                        "name": "Inhaltsbereich",
                                        "sort_order": 1,
                                        "css_classes": "",
                                        "background_color": "",
                                        "is_fullsize": 0,
                                        "is_jumbotron": false,
                                        "active": true,
                                        "show_desktop": true,
                                        "show_mobile": true,
                                        "customer_group_ids": [],
                                        "content_modules_location": "https://localhost/shop/api/v2/private/contentlines/1/modules",
                                        "content_modules": [
                                            {
                                                "id": 1,
                                                "location": "https://localhost/shop/api/v2/private/contentmodules/1",
                                                "row_id": 1,
                                                "content_line_id": 1,
                                                "module_type": "Text",
                                                "label": "Start text",
                                                "sort_order": 1,
                                                "active": true
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Contentlines Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Contentlines.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContentlinesDetailPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentlines.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentlines.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "contentlines"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "location": {
                                                    "type": "string"
                                                },
                                                "row_id": {
                                                    "type": "integer"
                                                },
                                                "content_row_location": {
                                                    "type": "string"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "sort_order": {
                                                    "type": "integer"
                                                },
                                                "css_classes": {
                                                    "type": "string"
                                                },
                                                "background_color": {
                                                    "type": "string"
                                                },
                                                "is_fullsize": {
                                                    "type": "integer",
                                                    "enum": [
                                                        0,
                                                        1,
                                                        2
                                                    ]
                                                },
                                                "is_jumbotron": {
                                                    "type": "boolean"
                                                },
                                                "active": {
                                                    "type": "boolean"
                                                },
                                                "show_desktop": {
                                                    "type": "boolean"
                                                },
                                                "show_mobile": {
                                                    "type": "boolean"
                                                },
                                                "customer_group_ids": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "integer"
                                                    }
                                                },
                                                "content_modules_location": {
                                                    "type": "string"
                                                },
                                                "content_modules": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "location": {
                                                                "type": "string"
                                                            },
                                                            "row_id": {
                                                                "type": "integer"
                                                            },
                                                            "content_line_id": {
                                                                "type": "integer"
                                                            },
                                                            "module_type": {
                                                                "type": "string"
                                                            },
                                                            "label": {
                                                                "type": "string"
                                                            },
                                                            "sort_order": {
                                                                "type": "integer"
                                                            },
                                                            "active": {
                                                                "type": "boolean"
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/contentlines/1",
                                        "row_id": 1,
                                        "content_row_location": "https://localhost/shop/api/v2/private/contentrows/1",
                                        "name": "Inhaltsbereich",
                                        "sort_order": 1,
                                        "css_classes": "",
                                        "background_color": "",
                                        "is_fullsize": 0,
                                        "is_jumbotron": false,
                                        "active": true,
                                        "show_desktop": true,
                                        "show_mobile": true,
                                        "customer_group_ids": [],
                                        "content_modules_location": "https://localhost/shop/api/v2/private/contentlines/1/modules",
                                        "content_modules": [
                                            {
                                                "id": 1,
                                                "location": "https://localhost/shop/api/v2/private/contentmodules/1",
                                                "row_id": 1,
                                                "content_line_id": 1,
                                                "module_type": "Text",
                                                "label": "Start text",
                                                "sort_order": 1,
                                                "active": true
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Content-Zeile aktualisieren.",
                "description": "Aktualisiert die Felder einer Zeile einschliesslich Sichtbarkeit, Kundengruppen und sort_order. Fuer eine kollisionsfreie komplette Reihenfolge PUT /private/contentrows/{id}/lines verwenden.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutContentlinesDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "minProperties": 1,
                                "additionalProperties": false,
                                "properties": {
                                    "row_id": {
                                        "type": "integer",
                                        "description": "Nur unveraenderte bisherige ID zulaessig"
                                    },
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "sort_order": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 65535
                                    },
                                    "css_classes": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "background_color": {
                                        "type": "string",
                                        "maxLength": 10
                                    },
                                    "is_fullsize": {
                                        "type": "integer",
                                        "enum": [
                                            0,
                                            1,
                                            2
                                        ]
                                    },
                                    "is_jumbotron": {
                                        "type": "boolean"
                                    },
                                    "active": {
                                        "type": "boolean"
                                    },
                                    "show_desktop": {
                                        "type": "boolean"
                                    },
                                    "show_mobile": {
                                        "type": "boolean"
                                    },
                                    "customer_group_ids": {
                                        "type": "array",
                                        "uniqueItems": true,
                                        "items": {
                                            "type": "integer",
                                            "minimum": 1
                                        }
                                    }
                                }
                            },
                            "example": {
                                "name": "Sommeraktion 2026",
                                "sort_order": 20,
                                "show_mobile": false,
                                "customer_group_ids": [
                                    1,
                                    2
                                ]
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentlines.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentlines.update"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "contentlines"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Content-Zeile loeschen.",
                "description": "Loescht die Zeile und ihre Module einschliesslich zugehoeriger Moduldateien.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteContentlinesDetailPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentlines.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentlines.delete"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/contentlines/search": {
            "get": {
                "tags": [
                    "contentlines"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_contentlines.json#/properties/data/items"
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/contentlines/1",
                                            "row_id": 1,
                                            "name": "Inhaltsbereich",
                                            "sort_order": 1,
                                            "active": true,
                                            "show_desktop": true,
                                            "show_mobile": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Contentlines suchen.",
                "description": "Sucht Datensaetze fuer Contentlines anhand eines Suchbegriffs.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContentlinesSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentlines.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentlines.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/contentlines/modules": {
            "get": {
                "tags": [
                    "contentlines"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "row_id": {
                                                "type": "integer"
                                            },
                                            "content_line_id": {
                                                "type": "integer"
                                            },
                                            "module_type": {
                                                "type": "string"
                                            },
                                            "label": {
                                                "type": "string"
                                            },
                                            "sort_order": {
                                                "type": "integer"
                                            },
                                            "active": {
                                                "type": "boolean"
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/contentmodules/1",
                                            "row_id": 1,
                                            "content_line_id": 1,
                                            "module_type": "Text",
                                            "label": "Start text",
                                            "sort_order": 1,
                                            "active": true
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Module einer Content-Zeile abrufen.",
                "description": "Liefert die zugeordneten Module in ihrer Reihenfolge mit Links auf die Modul-Details.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContentlinesModulesPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentlines.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentlines.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/contentmodules": {
            "get": {
                "tags": [
                    "contentmodules"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "module_type": {
                                                "type": "string"
                                            },
                                            "label": {
                                                "type": "string"
                                            },
                                            "section": {
                                                "type": "string"
                                            },
                                            "multishop_id": {
                                                "type": "integer"
                                            },
                                            "lang_id": {
                                                "type": "integer"
                                            },
                                            "active": {
                                                "type": "boolean"
                                            },
                                            "sort_order": {
                                                "type": "integer"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/contentmodules/1",
                                        "module_type": "RichText",
                                        "label": "Startseite Text",
                                        "section": "startpage",
                                        "multishop_id": 1,
                                        "lang_id": 1,
                                        "active": true,
                                        "sort_order": 10
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Content-Module abrufen.",
                "description": "Liefert Daten fuer mehrere Content-Module. Schreibbar sind die unter /private/contentmodules/types ausgewiesenen Startseiten-Modultypen; der alte BannerRotator bleibt ausgeschlossen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContentmodulesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "module_type": {
                                    "type": "string"
                                },
                                "section": {
                                    "type": "string"
                                },
                                "multishop_id": {
                                    "type": "integer"
                                },
                                "lang_id": {
                                    "type": "integer"
                                },
                                "row_id": {
                                    "type": "integer"
                                },
                                "zeilen_id": {
                                    "type": "integer"
                                },
                                "int_id": {
                                    "type": "integer"
                                },
                                "active": {
                                    "type": "boolean"
                                }
                            }
                        },
                        "description": "Filtert Content-Module"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentmodules.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentmodules.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "contentmodules"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "module_type": {
                                            "type": "string"
                                        },
                                        "config_class": {
                                            "type": "string"
                                        },
                                        "template_filename": {
                                            "type": "string"
                                        },
                                        "css_class": {
                                            "type": "string"
                                        },
                                        "dom_id": {
                                            "type": "string"
                                        },
                                        "label": {
                                            "type": "string"
                                        },
                                        "note": {
                                            "type": "string"
                                        },
                                        "section": {
                                            "type": "string"
                                        },
                                        "int_id": {
                                            "type": "integer"
                                        },
                                        "row_id": {
                                            "type": "integer"
                                        },
                                        "zeilen_id": {
                                            "type": "integer"
                                        },
                                        "content_line_id": {
                                            "type": "integer",
                                            "description": "API-Name fuer zeilen_id"
                                        },
                                        "content_line_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "multishop_id": {
                                            "type": "integer"
                                        },
                                        "lang_id": {
                                            "type": "integer"
                                        },
                                        "sort_order": {
                                            "type": "integer"
                                        },
                                        "version": {
                                            "type": "integer"
                                        },
                                        "active": {
                                            "type": "boolean"
                                        },
                                        "has_config_definition": {
                                            "type": "boolean"
                                        },
                                        "config": {
                                            "type": "object",
                                            "description": "Typabhaengige Konfiguration. Bei Startseiten-Modulen enthalten grid und grid_mobil die Desktop- und Mobilbreite, sofern der Modultyp sie definiert. Intern PHP-serialisiert gespeichert, hier als JSON-Objekt ausgegeben."
                                        },
                                        "template_code": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 42,
                                    "location": "https://localhost/shop/api/v2/private/contentmodules/42",
                                    "module_type": "TextArea",
                                    "config_class": "CM_TextArea",
                                    "template_filename": "CM_TextArea.tpl",
                                    "css_class": "CM_TextArea",
                                    "dom_id": "CM_TextArea_42",
                                    "label": "Startseite \u2013 Begruessung",
                                    "note": "",
                                    "section": "startpage",
                                    "int_id": 0,
                                    "row_id": 2,
                                    "zeilen_id": 12,
                                    "content_line_id": 12,
                                    "content_line_location": "https://localhost/shop/api/v2/private/contentlines/12",
                                    "multishop_id": 1,
                                    "lang_id": 1,
                                    "sort_order": 1,
                                    "version": 1,
                                    "active": true,
                                    "has_config_definition": true,
                                    "config": {
                                        "width": "",
                                        "height": "",
                                        "grid": "12",
                                        "grid_mobil": "12",
                                        "text": "<h2>Willkommen</h2><p>Unser aktuelles Angebot.</p>",
                                        "css": ".welcome { margin: 1rem 0; }",
                                        "text_type": ""
                                    },
                                    "template_code": ""
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Startseiten-Content-Modul anlegen.",
                "description": "Erfordert eine Content-Line in einem startpage-Setup. Nur Modultypen mit apiCreate-Hook werden unterstuetzt; Shop, Sprache und Row werden aus der Line uebernommen. Medienfelder werden als images.{feld} oder videos.{feld} mit filename und Base64-stream hochgeladen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostContentmodulesPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "module_type",
                                    "content_line_id"
                                ],
                                "additionalProperties": false,
                                "properties": {
                                    "module_type": {
                                        "type": "string",
                                        "description": "Schreibbarer Startseiten-Modultyp; erlaubte Typen und Felder unter GET /private/contentmodules/types"
                                    },
                                    "content_line_id": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "description": "Content Line eines startpage-Setups; Row, Shop und Sprache werden daraus abgeleitet"
                                    },
                                    "label": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "note": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "active": {
                                        "type": "boolean",
                                        "description": "Standardmaessig inaktiv"
                                    },
                                    "sort_order": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 65535,
                                        "description": "Ohne Angabe am Ende der Line"
                                    },
                                    "config": {
                                        "type": "object",
                                        "description": "Typabhaengige Felder gemaess GET /private/contentmodules/types?module_type=...; Bild-Dateinamen sind readOnly"
                                    },
                                    "images": {
                                        "type": "object",
                                        "description": "Bildfelder gemaess GET /private/contentmodules/types; pro Feld {filename,stream} mit Base64 oder data:image/...;base64",
                                        "additionalProperties": {
                                            "type": "object",
                                            "required": [
                                                "filename",
                                                "stream"
                                            ],
                                            "properties": {
                                                "filename": {
                                                    "type": "string"
                                                },
                                                "stream": {
                                                    "type": "string"
                                                }
                                            }
                                        }
                                    },
                                    "videos": {
                                        "type": "object",
                                        "description": "Videofelder gemaess GET /private/contentmodules/types; pro Feld {filename,stream} mit Base64 oder data:video/...;base64; bis 25 MiB dekodiert",
                                        "example": {
                                            "video": {
                                                "filename": "video.mp4",
                                                "stream": "BASE64_ENCODED_MP4"
                                            }
                                        },
                                        "additionalProperties": {
                                            "type": "object",
                                            "required": [
                                                "filename",
                                                "stream"
                                            ],
                                            "properties": {
                                                "filename": {
                                                    "type": "string"
                                                },
                                                "stream": {
                                                    "type": "string"
                                                }
                                            }
                                        }
                                    }
                                }
                            },
                            "example": {
                                "module_type": "HeroTeaser",
                                "content_line_id": 12,
                                "label": "Startseite \u2013 Bild-Teaser",
                                "active": true,
                                "config": {
                                    "grid": "12",
                                    "grid_mobil": "12",
                                    "headline": "Willkommen",
                                    "text": "Unser aktuelles Angebot."
                                },
                                "images": {
                                    "img": {
                                        "filename": "hero.png",
                                        "stream": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/lV8AAAAASUVORK5CYII="
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentmodules.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentmodules.create"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/contentmodules/{id}": {
            "get": {
                "tags": [
                    "contentmodules"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "module_type": {
                                            "type": "string"
                                        },
                                        "config_class": {
                                            "type": "string"
                                        },
                                        "template_filename": {
                                            "type": "string"
                                        },
                                        "css_class": {
                                            "type": "string"
                                        },
                                        "dom_id": {
                                            "type": "string"
                                        },
                                        "label": {
                                            "type": "string"
                                        },
                                        "note": {
                                            "type": "string"
                                        },
                                        "section": {
                                            "type": "string"
                                        },
                                        "int_id": {
                                            "type": "integer"
                                        },
                                        "row_id": {
                                            "type": "integer"
                                        },
                                        "zeilen_id": {
                                            "type": "integer"
                                        },
                                        "content_line_id": {
                                            "type": "integer",
                                            "description": "API-Name fuer zeilen_id"
                                        },
                                        "content_line_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "multishop_id": {
                                            "type": "integer"
                                        },
                                        "lang_id": {
                                            "type": "integer"
                                        },
                                        "sort_order": {
                                            "type": "integer"
                                        },
                                        "version": {
                                            "type": "integer"
                                        },
                                        "active": {
                                            "type": "boolean"
                                        },
                                        "has_config_definition": {
                                            "type": "boolean"
                                        },
                                        "config": {
                                            "type": "object",
                                            "description": "Typabhaengige Konfiguration. Bei Startseiten-Modulen enthalten grid und grid_mobil die Desktop- und Mobilbreite, sofern der Modultyp sie definiert. Intern PHP-serialisiert gespeichert, hier als JSON-Objekt ausgegeben."
                                        },
                                        "template_code": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/contentmodules/1",
                                    "module_type": "RichText",
                                    "config_class": "CM_RichText",
                                    "template_filename": "CM_RichText.tpl",
                                    "css_class": "CM_RichText",
                                    "dom_id": "CM_RichText_1",
                                    "label": "Startseite Text",
                                    "note": "Hero text",
                                    "section": "startpage",
                                    "int_id": 0,
                                    "row_id": 1,
                                    "zeilen_id": 1,
                                    "content_line_id": 1,
                                    "content_line_location": "https://localhost/shop/api/v2/private/contentlines/1",
                                    "multishop_id": 1,
                                    "lang_id": 1,
                                    "sort_order": 10,
                                    "version": 1,
                                    "active": true,
                                    "has_config_definition": true,
                                    "config": {
                                        "grid": "12",
                                        "grid_mobil": "12",
                                        "headline": "Welcome"
                                    },
                                    "template_code": ""
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Content-Moduls abrufen.",
                "description": "Liefert Daten zu einem Content-Modul inklusive Konfiguration und technischer Modulklasse. Die Config enthaelt auch grid und grid_mobil fuer die Breite, sofern der Modultyp diese Felder definiert.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContentmodulesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Content-Modul-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentmodules.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentmodules.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "contentmodules"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "module_type": {
                                            "type": "string"
                                        },
                                        "config_class": {
                                            "type": "string"
                                        },
                                        "template_filename": {
                                            "type": "string"
                                        },
                                        "css_class": {
                                            "type": "string"
                                        },
                                        "dom_id": {
                                            "type": "string"
                                        },
                                        "label": {
                                            "type": "string"
                                        },
                                        "note": {
                                            "type": "string"
                                        },
                                        "section": {
                                            "type": "string"
                                        },
                                        "int_id": {
                                            "type": "integer"
                                        },
                                        "row_id": {
                                            "type": "integer"
                                        },
                                        "zeilen_id": {
                                            "type": "integer"
                                        },
                                        "content_line_id": {
                                            "type": "integer",
                                            "description": "API-Name fuer zeilen_id"
                                        },
                                        "content_line_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "multishop_id": {
                                            "type": "integer"
                                        },
                                        "lang_id": {
                                            "type": "integer"
                                        },
                                        "sort_order": {
                                            "type": "integer"
                                        },
                                        "version": {
                                            "type": "integer"
                                        },
                                        "active": {
                                            "type": "boolean"
                                        },
                                        "has_config_definition": {
                                            "type": "boolean"
                                        },
                                        "config": {
                                            "type": "object",
                                            "description": "Typabhaengige Konfiguration. Bei Startseiten-Modulen enthalten grid und grid_mobil die Desktop- und Mobilbreite, sofern der Modultyp sie definiert. Intern PHP-serialisiert gespeichert, hier als JSON-Objekt ausgegeben."
                                        },
                                        "template_code": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 42,
                                    "location": "https://localhost/shop/api/v2/private/contentmodules/42",
                                    "module_type": "TextArea",
                                    "config_class": "CM_TextArea",
                                    "template_filename": "CM_TextArea.tpl",
                                    "css_class": "CM_TextArea",
                                    "dom_id": "CM_TextArea_42",
                                    "label": "Startseite \u2013 Begruessung",
                                    "note": "",
                                    "section": "startpage",
                                    "int_id": 0,
                                    "row_id": 2,
                                    "zeilen_id": 12,
                                    "content_line_id": 12,
                                    "content_line_location": "https://localhost/shop/api/v2/private/contentlines/12",
                                    "multishop_id": 1,
                                    "lang_id": 1,
                                    "sort_order": 1,
                                    "version": 1,
                                    "active": true,
                                    "has_config_definition": true,
                                    "config": {
                                        "width": "",
                                        "height": "",
                                        "grid": "12",
                                        "grid_mobil": "12",
                                        "text": "<h2>Willkommen</h2><p>Unser aktuelles Angebot.</p>",
                                        "css": ".welcome { margin: 1rem 0; }",
                                        "text_type": ""
                                    },
                                    "template_code": ""
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Startseiten-Content-Modul aktualisieren.",
                "description": "Aktualisiert gemeinsame Felder und eine Teilmenge der typabhaengigen Config. images.{feld} bzw. videos.{feld} ersetzt eine Mediendatei; null entfernt sie. Nur Modultypen mit apiUpdate-Hook werden unterstuetzt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutContentmodulesDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "minProperties": 1,
                                "additionalProperties": false,
                                "properties": {
                                    "module_type": {
                                        "type": "string",
                                        "description": "Nur der unveraenderte Typ zulaessig"
                                    },
                                    "content_line_id": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "description": "Optionaler Wechsel zu einer Content Line derselben Startseiten-Row"
                                    },
                                    "label": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "note": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "active": {
                                        "type": "boolean"
                                    },
                                    "sort_order": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 65535
                                    },
                                    "config": {
                                        "type": "object",
                                        "description": "Partielles Update; Bild-Dateinamen sind readOnly"
                                    },
                                    "images": {
                                        "type": "object",
                                        "description": "Bildfelder gemaess GET /private/contentmodules/types; {filename,stream} ersetzt, null entfernt ein Bild",
                                        "additionalProperties": {
                                            "oneOf": [
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "filename",
                                                        "stream"
                                                    ],
                                                    "properties": {
                                                        "filename": {
                                                            "type": "string"
                                                        },
                                                        "stream": {
                                                            "type": "string"
                                                        }
                                                    }
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    },
                                    "videos": {
                                        "type": "object",
                                        "description": "Videofelder gemaess GET /private/contentmodules/types; {filename,stream} ersetzt, null entfernt ein Video",
                                        "additionalProperties": {
                                            "oneOf": [
                                                {
                                                    "type": "object",
                                                    "required": [
                                                        "filename",
                                                        "stream"
                                                    ],
                                                    "properties": {
                                                        "filename": {
                                                            "type": "string"
                                                        },
                                                        "stream": {
                                                            "type": "string"
                                                        }
                                                    }
                                                },
                                                {
                                                    "type": "null"
                                                }
                                            ]
                                        }
                                    }
                                }
                            },
                            "example": {
                                "label": "Startseite \u2013 Bild-Teaser aktualisiert",
                                "images": {
                                    "img_mobile": {
                                        "filename": "hero-mobile.png",
                                        "stream": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/lV8AAAAASUVORK5CYII="
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentmodules.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentmodules.update"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "contentmodules"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Startseiten-Content-Modul loeschen.",
                "description": "Nur Modultypen mit apiDelete-Hook werden unterstuetzt. Danach wird das Modul samt Modulverzeichnis entfernt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteContentmodulesDetailPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentmodules.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentmodules.delete"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/contentmodules/search": {
            "get": {
                "tags": [
                    "contentmodules"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "module_type": {
                                            "type": "string"
                                        },
                                        "config_class": {
                                            "type": "string"
                                        },
                                        "template_filename": {
                                            "type": "string"
                                        },
                                        "css_class": {
                                            "type": "string"
                                        },
                                        "dom_id": {
                                            "type": "string"
                                        },
                                        "label": {
                                            "type": "string"
                                        },
                                        "note": {
                                            "type": "string"
                                        },
                                        "section": {
                                            "type": "string"
                                        },
                                        "int_id": {
                                            "type": "integer"
                                        },
                                        "row_id": {
                                            "type": "integer"
                                        },
                                        "zeilen_id": {
                                            "type": "integer"
                                        },
                                        "multishop_id": {
                                            "type": "integer"
                                        },
                                        "lang_id": {
                                            "type": "integer"
                                        },
                                        "sort_order": {
                                            "type": "integer"
                                        },
                                        "version": {
                                            "type": "integer"
                                        },
                                        "active": {
                                            "type": "boolean"
                                        },
                                        "has_config_definition": {
                                            "type": "boolean"
                                        },
                                        "config": {
                                            "type": "object"
                                        },
                                        "template_code": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/contentmodules/1",
                                    "module_type": "RichText",
                                    "config_class": "CM_RichText",
                                    "template_filename": "CM_RichText.tpl",
                                    "css_class": "CM_RichText",
                                    "dom_id": "CM_RichText_1",
                                    "label": "Startseite Text",
                                    "note": "Hero text",
                                    "section": "startpage",
                                    "int_id": 0,
                                    "row_id": 1,
                                    "zeilen_id": 1,
                                    "multishop_id": 1,
                                    "lang_id": 1,
                                    "sort_order": 10,
                                    "version": 1,
                                    "active": true,
                                    "has_config_definition": true,
                                    "config": {
                                        "headline": "Welcome"
                                    },
                                    "template_code": ""
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Content-Modulen nach einem String.",
                "description": "Sucht in Content-Modulen nach Bezeichnung oder Modulname.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContentmodulesSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentmodules.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentmodules.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/contentmodules/types": {
            "get": {
                "tags": [
                    "contentmodules"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "module_type": {
                                                "type": "string"
                                            },
                                            "description": {
                                                "type": "string"
                                            },
                                            "section": {
                                                "type": "string",
                                                "enum": [
                                                    "startpage"
                                                ]
                                            },
                                            "writable_fields": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "config_fields": {
                                                "type": "object",
                                                "description": "Feldname auf Metadaten mit type, default, optional enum/minimum/maximum/maxLength/readOnly. Die Typen category_id, product_id, product_ids und firm_ids werden gegen Shop-Datensaetze validiert."
                                            },
                                            "image_fields": {
                                                "type": "array",
                                                "description": "Per images beschreibbare Bildfelder",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "video_fields": {
                                                "type": "array",
                                                "description": "Per videos beschreibbare Videofelder",
                                                "items": {
                                                    "type": "string"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "module_type": "RichText",
                                        "description": "Redaktioneller Textblock mit Headline, Text und optionalem Button.",
                                        "section": "startpage",
                                        "writable_fields": [
                                            "content_line_id",
                                            "label",
                                            "note",
                                            "active",
                                            "sort_order",
                                            "config"
                                        ],
                                        "config_fields": {
                                            "grid": {
                                                "type": "string",
                                                "default": "12",
                                                "enum": [
                                                    "1",
                                                    "2",
                                                    "3",
                                                    "4",
                                                    "5",
                                                    "6",
                                                    "7",
                                                    "8",
                                                    "9",
                                                    "10",
                                                    "11",
                                                    "12"
                                                ]
                                            },
                                            "grid_mobil": {
                                                "type": "string",
                                                "default": "12",
                                                "enum": [
                                                    "1",
                                                    "2",
                                                    "3",
                                                    "4",
                                                    "5",
                                                    "6",
                                                    "7",
                                                    "8",
                                                    "9",
                                                    "10",
                                                    "11",
                                                    "12"
                                                ]
                                            },
                                            "headline": {
                                                "type": "string",
                                                "default": ""
                                            },
                                            "subline": {
                                                "type": "string",
                                                "default": ""
                                            },
                                            "text": {
                                                "type": "string",
                                                "default": ""
                                            },
                                            "button_text": {
                                                "type": "string",
                                                "default": ""
                                            },
                                            "button_link": {
                                                "type": "string",
                                                "default": ""
                                            },
                                            "text_align": {
                                                "type": "string",
                                                "default": "start",
                                                "enum": [
                                                    "start",
                                                    "center",
                                                    "end"
                                                ]
                                            }
                                        },
                                        "image_fields": [],
                                        "video_fields": []
                                    },
                                    {
                                        "module_type": "HeroTeaser",
                                        "description": "Bild-Teaser fuer die Startseite.",
                                        "section": "startpage",
                                        "writable_fields": [
                                            "content_line_id",
                                            "label",
                                            "note",
                                            "active",
                                            "sort_order",
                                            "config",
                                            "images"
                                        ],
                                        "config_fields": {
                                            "grid": {
                                                "type": "string",
                                                "default": "12",
                                                "enum": [
                                                    "1",
                                                    "2",
                                                    "3",
                                                    "4",
                                                    "5",
                                                    "6",
                                                    "7",
                                                    "8",
                                                    "9",
                                                    "10",
                                                    "11",
                                                    "12"
                                                ]
                                            },
                                            "img": {
                                                "type": "image_file",
                                                "default": "",
                                                "readOnly": true
                                            }
                                        },
                                        "image_fields": [
                                            "img",
                                            "img_mobile"
                                        ],
                                        "video_fields": []
                                    },
                                    {
                                        "module_type": "VideoSection",
                                        "description": "Video-Teaser mit optionalem Posterbild.",
                                        "section": "startpage",
                                        "writable_fields": [
                                            "content_line_id",
                                            "label",
                                            "note",
                                            "active",
                                            "sort_order",
                                            "config",
                                            "images",
                                            "videos"
                                        ],
                                        "config_fields": {
                                            "grid": {
                                                "type": "string",
                                                "default": "12",
                                                "enum": [
                                                    "1",
                                                    "2",
                                                    "3",
                                                    "4",
                                                    "5",
                                                    "6",
                                                    "7",
                                                    "8",
                                                    "9",
                                                    "10",
                                                    "11",
                                                    "12"
                                                ]
                                            },
                                            "poster": {
                                                "type": "image_file",
                                                "default": "",
                                                "readOnly": true
                                            },
                                            "video": {
                                                "type": "video_file",
                                                "default": "",
                                                "readOnly": true
                                            }
                                        },
                                        "image_fields": [
                                            "poster"
                                        ],
                                        "video_fields": [
                                            "video"
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "API-unterstuetzte Startseiten-Modultypen und ihre Config-Felder abrufen.",
                "description": "Liefert pro schreibbarem Modultyp Config-, Bild- und Videofelder sowie Standard- und Auswahlwerte. Shop-Referenzen werden auf Existenz geprueft; Medien-Dateinamen sind nur lesbar und werden ueber images bzw. videos mit Base64-Stream geschrieben. Optional nach module_type filtern.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContentmodulesTypesPrivate",
                "parameters": [
                    {
                        "name": "module_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Optionaler Modulname, z.B. RichText."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentmodules.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentmodules.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/contentrows": {
            "get": {
                "tags": [
                    "contentrows"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "name": {
                                                "type": "string"
                                            },
                                            "section": {
                                                "type": "string"
                                            },
                                            "multishop_id": {
                                                "type": "integer"
                                            },
                                            "lang_id": {
                                                "type": "integer"
                                            },
                                            "active": {
                                                "type": "boolean"
                                            },
                                            "standard": {
                                                "type": "boolean"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/contentrows/1",
                                        "name": "Startseite Standard",
                                        "section": "startpage",
                                        "multishop_id": 1,
                                        "lang_id": 1,
                                        "active": true,
                                        "standard": true
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Content-Setups abrufen.",
                "description": "Liefert Daten fuer mehrere Content-Setups.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContentrowsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "section": {
                                    "type": "string"
                                },
                                "multishop_id": {
                                    "type": "integer"
                                },
                                "lang_id": {
                                    "type": "integer"
                                },
                                "int_id": {
                                    "type": "integer"
                                },
                                "active": {
                                    "type": "boolean"
                                },
                                "standard": {
                                    "type": "boolean"
                                }
                            }
                        },
                        "description": "Filtert Content-Setups"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentrows.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentrows.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "contentrows"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "section": {
                                            "type": "string"
                                        },
                                        "int_id": {
                                            "type": "integer"
                                        },
                                        "multishop_id": {
                                            "type": "integer"
                                        },
                                        "lang_id": {
                                            "type": "integer"
                                        },
                                        "active": {
                                            "type": "boolean",
                                            "description": "Aktueller Aktivstatus; fuer Startseiten-Setups vom Minuten-Cron berechnet"
                                        },
                                        "standard": {
                                            "type": "boolean",
                                            "description": "Fallback-Setup der Section fuer diesen Shop und diese Sprache"
                                        },
                                        "publish_from": {
                                            "type": "string",
                                            "description": "Beginn des Zeitfensters in Shopzeit; 0000-00-00 00:00:00 bedeutet unbegrenzt"
                                        },
                                        "publish_to": {
                                            "type": "string",
                                            "description": "Ende des Zeitfensters in Shopzeit; 0000-00-00 00:00:00 bedeutet unbegrenzt"
                                        },
                                        "preview_url": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "Nur fuer startpage; Link zur Vorschau auch unveroeffentlichter Inhalte"
                                        },
                                        "content_lines_location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "content_lines": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "format": "uri"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "row_id": {
                                                        "type": "integer"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    },
                                                    "sort_order": {
                                                        "type": "integer"
                                                    },
                                                    "show_desktop": {
                                                        "type": "boolean"
                                                    },
                                                    "show_mobile": {
                                                        "type": "boolean"
                                                    },
                                                    "content_modules_location": {
                                                        "type": "string",
                                                        "format": "uri"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/contentrows/1",
                                    "name": "Startseite Standard",
                                    "section": "startpage",
                                    "int_id": 0,
                                    "multishop_id": 1,
                                    "lang_id": 1,
                                    "active": true,
                                    "standard": true,
                                    "publish_from": "0000-00-00 00:00:00",
                                    "publish_to": "0000-00-00 00:00:00",
                                    "preview_url": "https://localhost/shop/?previestartpage=1",
                                    "content_lines_location": "https://localhost/shop/api/v2/private/contentrows/1/lines",
                                    "content_lines": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/contentlines/1",
                                            "name": "Inhaltsbereich",
                                            "row_id": 1,
                                            "active": true,
                                            "sort_order": 1,
                                            "show_desktop": true,
                                            "show_mobile": true,
                                            "content_modules_location": "https://localhost/shop/api/v2/private/contentmodules?filter[zeilen_id]=1"
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Content-Setup anlegen.",
                "description": "Erstellt ein Setup. Das erste Setup einer Section pro Shop/Sprache wird automatisch Standard; fuer startpage erfolgt die Aktivierung durch den bestehenden Zeitplan.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostContentrowsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name",
                                    "section",
                                    "multishop_id",
                                    "lang_id"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "section": {
                                        "type": "string",
                                        "maxLength": 20,
                                        "description": "Bereich, z.B. startpage oder footer"
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "lang_id": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "int_id": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "description": "Optionaler Bezug zu einem anderen Objekt"
                                    },
                                    "standard": {
                                        "type": "boolean",
                                        "description": "Das erste Setup einer Section wird automatisch Standard. Ein bestehendes Standard-Setup wird nicht durch POST ersetzt."
                                    },
                                    "publish_from": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "description": "Beginn des Zeitfensters in Shopzeit, YYYY-MM-DD HH:MM:SS; null bedeutet unbegrenzt"
                                    },
                                    "publish_to": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "description": "Ende des Zeitfensters in Shopzeit, YYYY-MM-DD HH:MM:SS; null bedeutet unbegrenzt"
                                    }
                                }
                            },
                            "example": {
                                "name": "Herbstaktion 2026",
                                "section": "startpage",
                                "multishop_id": 1,
                                "lang_id": 1,
                                "publish_from": "2026-10-01 00:00:00",
                                "publish_to": "2026-10-31 23:59:59"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentrows.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentrows.create"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/contentrows/{id}": {
            "get": {
                "tags": [
                    "contentrows"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "section": {
                                            "type": "string"
                                        },
                                        "int_id": {
                                            "type": "integer"
                                        },
                                        "multishop_id": {
                                            "type": "integer"
                                        },
                                        "lang_id": {
                                            "type": "integer"
                                        },
                                        "active": {
                                            "type": "boolean",
                                            "description": "Aktueller Aktivstatus; fuer Startseiten-Setups vom Minuten-Cron berechnet"
                                        },
                                        "standard": {
                                            "type": "boolean",
                                            "description": "Fallback-Setup der Section fuer diesen Shop und diese Sprache"
                                        },
                                        "publish_from": {
                                            "type": "string",
                                            "description": "Beginn des Zeitfensters in Shopzeit; 0000-00-00 00:00:00 bedeutet unbegrenzt"
                                        },
                                        "publish_to": {
                                            "type": "string",
                                            "description": "Ende des Zeitfensters in Shopzeit; 0000-00-00 00:00:00 bedeutet unbegrenzt"
                                        },
                                        "preview_url": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "Nur fuer startpage; Link zur Vorschau auch unveroeffentlichter Inhalte"
                                        },
                                        "content_lines_location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "content_lines": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "format": "uri"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "row_id": {
                                                        "type": "integer"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    },
                                                    "sort_order": {
                                                        "type": "integer"
                                                    },
                                                    "show_desktop": {
                                                        "type": "boolean"
                                                    },
                                                    "show_mobile": {
                                                        "type": "boolean"
                                                    },
                                                    "content_modules_location": {
                                                        "type": "string",
                                                        "format": "uri"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/contentrows/1",
                                    "name": "Startseite Standard",
                                    "section": "startpage",
                                    "int_id": 0,
                                    "multishop_id": 1,
                                    "lang_id": 1,
                                    "active": true,
                                    "standard": true,
                                    "publish_from": "0000-00-00 00:00:00",
                                    "publish_to": "0000-00-00 00:00:00",
                                    "preview_url": "https://localhost/shop/?previestartpage=1",
                                    "content_lines_location": "https://localhost/shop/api/v2/private/contentrows/1/lines",
                                    "content_lines": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/contentlines/1",
                                            "name": "Inhaltsbereich",
                                            "row_id": 1,
                                            "active": true,
                                            "sort_order": 1,
                                            "show_desktop": true,
                                            "show_mobile": true,
                                            "content_modules_location": "https://localhost/shop/api/v2/private/contentmodules?filter[zeilen_id]=1"
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Content-Setups abrufen.",
                "description": "Liefert Daten zu einem Content-Setup inklusive Zeilen-Uebersicht.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContentrowsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Content-Setup-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentrows.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentrows.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "contentrows"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "section": {
                                            "type": "string"
                                        },
                                        "int_id": {
                                            "type": "integer"
                                        },
                                        "multishop_id": {
                                            "type": "integer"
                                        },
                                        "lang_id": {
                                            "type": "integer"
                                        },
                                        "active": {
                                            "type": "boolean",
                                            "description": "Aktueller Aktivstatus; fuer Startseiten-Setups vom Minuten-Cron berechnet"
                                        },
                                        "standard": {
                                            "type": "boolean",
                                            "description": "Fallback-Setup der Section fuer diesen Shop und diese Sprache"
                                        },
                                        "publish_from": {
                                            "type": "string",
                                            "description": "Beginn des Zeitfensters in Shopzeit; 0000-00-00 00:00:00 bedeutet unbegrenzt"
                                        },
                                        "publish_to": {
                                            "type": "string",
                                            "description": "Ende des Zeitfensters in Shopzeit; 0000-00-00 00:00:00 bedeutet unbegrenzt"
                                        },
                                        "preview_url": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "Nur fuer startpage; Link zur Vorschau auch unveroeffentlichter Inhalte"
                                        },
                                        "content_lines_location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "content_lines": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "format": "uri"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "row_id": {
                                                        "type": "integer"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    },
                                                    "sort_order": {
                                                        "type": "integer"
                                                    },
                                                    "show_desktop": {
                                                        "type": "boolean"
                                                    },
                                                    "show_mobile": {
                                                        "type": "boolean"
                                                    },
                                                    "content_modules_location": {
                                                        "type": "string",
                                                        "format": "uri"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/contentrows/1",
                                    "name": "Startseite Standard",
                                    "section": "startpage",
                                    "int_id": 0,
                                    "multishop_id": 1,
                                    "lang_id": 1,
                                    "active": true,
                                    "standard": true,
                                    "publish_from": "0000-00-00 00:00:00",
                                    "publish_to": "0000-00-00 00:00:00",
                                    "preview_url": "https://localhost/shop/?previestartpage=1",
                                    "content_lines_location": "https://localhost/shop/api/v2/private/contentrows/1/lines",
                                    "content_lines": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/contentlines/1",
                                            "name": "Inhaltsbereich",
                                            "row_id": 1,
                                            "active": true,
                                            "sort_order": 1,
                                            "show_desktop": true,
                                            "show_mobile": true,
                                            "content_modules_location": "https://localhost/shop/api/v2/private/contentmodules?filter[zeilen_id]=1"
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Content-Setup aktualisieren.",
                "description": "Aendert Name und Zeitfenster oder setzt ein Startseiten-Setup als Standard. Das Standard-Setup darf kein Zeitfenster haben; active wird vom Minuten-Cron berechnet.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutContentrowsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Content-Setup-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Teilaktualisierung. Shop, Sprache, Section und int_id sind nach Erstellung unveraenderlich. active wird fuer Startseiten-Setups durch den Zeitplan bestimmt.",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255
                                    },
                                    "standard": {
                                        "type": "boolean",
                                        "description": "true macht dieses Setup zum einzigen Standard der Section und entfernt sein Zeitfenster"
                                    },
                                    "publish_from": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "description": "Beginn des Zeitfensters in Shopzeit, YYYY-MM-DD HH:MM:SS; null bedeutet unbegrenzt"
                                    },
                                    "publish_to": {
                                        "type": [
                                            "string",
                                            "null"
                                        ],
                                        "description": "Ende des Zeitfensters in Shopzeit, YYYY-MM-DD HH:MM:SS; null bedeutet unbegrenzt"
                                    }
                                }
                            },
                            "example": {
                                "name": "Herbstaktion 2026 \u2013 verl\u00e4ngert",
                                "publish_to": "2026-11-07 23:59:59"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentrows.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentrows.update"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "contentrows"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Content-Setup loeschen.",
                "description": "Loescht ein inaktives, nicht als Standard gesetztes Setup mit seinen Zeilen und Modulen. Moduldateien werden ueber die vorhandene Entitaet entfernt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteContentrowsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Content-Setup-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentrows.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentrows.delete"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/contentrows/{id}/lines": {
            "get": {
                "tags": [
                    "contentrows"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "name": {
                                                "type": "string"
                                            },
                                            "row_id": {
                                                "type": "integer"
                                            },
                                            "active": {
                                                "type": "boolean"
                                            },
                                            "sort_order": {
                                                "type": "integer"
                                            },
                                            "show_desktop": {
                                                "type": "boolean"
                                            },
                                            "show_mobile": {
                                                "type": "boolean"
                                            },
                                            "content_modules_location": {
                                                "type": "string",
                                                "format": "uri"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/contentlines/1",
                                        "name": "Inhaltsbereich",
                                        "row_id": 1,
                                        "active": true,
                                        "sort_order": 1,
                                        "show_desktop": true,
                                        "show_mobile": true,
                                        "content_modules_location": "https://localhost/shop/api/v2/private/contentlines/1/modules"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Content-Zeilen eines Setups abrufen.",
                "description": "Liefert alle Content-Zeilen in ihrer Reihenfolge mit Links auf die einzelnen Zeilen und deren Module.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContentrowsLinesPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Content-Setup-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentrows.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentrows.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "contentrows"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "name": {
                                                "type": "string"
                                            },
                                            "row_id": {
                                                "type": "integer"
                                            },
                                            "active": {
                                                "type": "boolean"
                                            },
                                            "sort_order": {
                                                "type": "integer"
                                            },
                                            "show_desktop": {
                                                "type": "boolean"
                                            },
                                            "show_mobile": {
                                                "type": "boolean"
                                            },
                                            "content_modules_location": {
                                                "type": "string",
                                                "format": "uri"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/contentlines/1",
                                        "name": "Inhaltsbereich",
                                        "row_id": 1,
                                        "active": true,
                                        "sort_order": 1,
                                        "show_desktop": true,
                                        "show_mobile": true,
                                        "content_modules_location": "https://localhost/shop/api/v2/private/contentlines/1/modules"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Content-Zeilen neu anordnen.",
                "description": "Die komplette Liste aller Zeilen-IDs dieser Row in gewuenschter Reihenfolge uebergeben. Validierung erfolgt vor dem Schreiben; orderby wird in Zehnerschritten vergeben.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutContentrowsLinesPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Content-Setup-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "line_ids"
                                ],
                                "additionalProperties": false,
                                "properties": {
                                    "line_ids": {
                                        "type": "array",
                                        "uniqueItems": true,
                                        "items": {
                                            "type": "integer",
                                            "minimum": 1
                                        },
                                        "description": "Alle Zeilen-IDs der Row in gewuenschter Reihenfolge; leeres Array nur bei leerer Row"
                                    }
                                }
                            },
                            "example": {
                                "line_ids": [
                                    12,
                                    10,
                                    11
                                ]
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentrows.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentrows.update"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/contentrows/{id}/preview": {
            "get": {
                "tags": [
                    "contentrows"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "row_id": {
                                            "type": "integer"
                                        },
                                        "preview_url": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "Vertraulicher Vorschau-Link, auch fuer unveroeffentlichte Startseiten"
                                        }
                                    },
                                    "required": [
                                        "row_id",
                                        "preview_url"
                                    ]
                                },
                                "example": {
                                    "row_id": 23,
                                    "preview_url": "https://localhost/shop/?previestartpage=23"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Vorschau-Link eines Startseiten-Setups abrufen.",
                "description": "Liefert den gleichen Vorschau-Link wie das Backend. Der Link zeigt auch unveroeffentlichte Inhalte und sollte vertraulich behandelt werden.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContentrowsPreviewPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Content-Setup-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentrows.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentrows.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/contentrows/search": {
            "get": {
                "tags": [
                    "contentrows"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "section": {
                                            "type": "string"
                                        },
                                        "int_id": {
                                            "type": "integer"
                                        },
                                        "multishop_id": {
                                            "type": "integer"
                                        },
                                        "lang_id": {
                                            "type": "integer"
                                        },
                                        "active": {
                                            "type": "boolean"
                                        },
                                        "standard": {
                                            "type": "boolean"
                                        },
                                        "publish_from": {
                                            "type": "string"
                                        },
                                        "publish_to": {
                                            "type": "string"
                                        },
                                        "content_lines": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "format": "uri"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "row_id": {
                                                        "type": "integer"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    },
                                                    "sort_order": {
                                                        "type": "integer"
                                                    },
                                                    "show_desktop": {
                                                        "type": "boolean"
                                                    },
                                                    "show_mobile": {
                                                        "type": "boolean"
                                                    },
                                                    "content_modules_location": {
                                                        "type": "string",
                                                        "format": "uri"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/contentrows/1",
                                    "name": "Startseite Standard",
                                    "section": "startpage",
                                    "int_id": 0,
                                    "multishop_id": 1,
                                    "lang_id": 1,
                                    "active": true,
                                    "standard": true,
                                    "publish_from": "0000-00-00 00:00:00",
                                    "publish_to": "0000-00-00 00:00:00",
                                    "content_lines": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/contentzeilen/1",
                                            "name": "Inhaltsbereich",
                                            "row_id": 1,
                                            "active": true,
                                            "sort_order": 1,
                                            "show_desktop": true,
                                            "show_mobile": true,
                                            "content_modules_location": "https://localhost/shop/api/v2/private/contentmodules?filter[zeilen_id]=1"
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Content-Setups nach einem String.",
                "description": "Sucht in Content-Setups nach Bezeichnung oder Section.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetContentrowsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentrows.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentrows.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/contentrows/{id}/copy": {
            "post": {
                "tags": [
                    "contentrows"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "source_row_id": {
                                            "type": "integer"
                                        },
                                        "row": {
                                            "$ref": "get_contentrow.json"
                                        },
                                        "copied_lines": {
                                            "type": "integer"
                                        },
                                        "copied_modules": {
                                            "type": "integer"
                                        },
                                        "copied_files": {
                                            "type": "integer"
                                        }
                                    },
                                    "required": [
                                        "source_row_id",
                                        "row",
                                        "copied_lines",
                                        "copied_modules",
                                        "copied_files"
                                    ]
                                },
                                "example": {
                                    "source_row_id": 23,
                                    "row": {
                                        "id": 24,
                                        "location": "https://localhost/shop/api/v2/private/contentrows/24",
                                        "name": "Startseite Herbstaktion - Kopie",
                                        "section": "startpage",
                                        "int_id": 0,
                                        "multishop_id": 1,
                                        "lang_id": 1,
                                        "active": false,
                                        "standard": false,
                                        "publish_from": "0000-00-00 00:00:00",
                                        "publish_to": "0000-00-00 00:00:00",
                                        "preview_url": "https://localhost/shop/?previestartpage=24",
                                        "content_lines_location": "https://localhost/shop/api/v2/private/contentrows/24/lines",
                                        "content_lines": []
                                    },
                                    "copied_lines": 15,
                                    "copied_modules": 23,
                                    "copied_files": 23
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Content-Setup mit allen Zeilen, Modulen und Moduldateien kopieren.",
                "description": "Erstellt eine inaktive, nicht als Standard gesetzte Kopie ohne Zeitfenster. Kopiert auch alle Dateien aus den Modulordnern, einschliesslich Bilder und Videos. Optionaler Body: name.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostContentrowsCopyPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Quell-Setup-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Optionaler Name der neuen Startseiten-Kopie. Ohne Body wird ' - Kopie' angehaengt.",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255
                                    }
                                },
                                "additionalProperties": false
                            },
                            "example": {
                                "name": "Startseite Herbstaktion - Kopie"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "contentrows.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "contentrows.create"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/counterarchives": {
            "get": {
                "tags": [
                    "counterarchives"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "date": {
                                                        "type": "string",
                                                        "description": "Archive date in YYYY-MM-DD format."
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "description": "Multishop id."
                                                    },
                                                    "hits": {
                                                        "type": "integer",
                                                        "description": "Total hit count."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "hits_mobile": {
                                                        "type": "integer",
                                                        "description": "Mobile hit count, included when details are requested."
                                                    },
                                                    "hits_desktop": {
                                                        "type": "integer",
                                                        "description": "Desktop hit count, included when details are requested."
                                                    },
                                                    "hits_tablet": {
                                                        "type": "integer",
                                                        "description": "Tablet hit count, included when details are requested."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Counterarchives."
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Zaehlerarchiv-Eintraege abrufen",
                "description": "Gibt Besucherzaehler-Archiveintraege zurueck. Detailabfragen verwenden das Datum als ID und multishop_id als Query-Parameter.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCounterarchivesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Alle Zaehlerfelder ausgeben."
                    },
                    {
                        "name": "multishop_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Multishop filtern."
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Startdatum im Format YYYY-MM-DD filtern."
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Enddatum im Format YYYY-MM-DD filtern."
                    },
                    {
                        "name": "min_hits",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach minimaler Trefferanzahl filtern."
                    },
                    {
                        "name": "max_hits",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach maximaler Trefferanzahl filtern."
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/counterarchives/{id}": {
            "get": {
                "tags": [
                    "counterarchives"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "date": {
                                            "type": "string",
                                            "description": "Archive date in YYYY-MM-DD format."
                                        },
                                        "multishop_id": {
                                            "type": "integer",
                                            "description": "Multishop id."
                                        },
                                        "hits": {
                                            "type": "integer",
                                            "description": "Total hit count."
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API-URL zur Detailansicht des Datensatzes."
                                        },
                                        "hits_mobile": {
                                            "type": "integer",
                                            "description": "Mobile hit count, included when details are requested."
                                        },
                                        "hits_desktop": {
                                            "type": "integer",
                                            "description": "Desktop hit count, included when details are requested."
                                        },
                                        "hits_tablet": {
                                            "type": "integer",
                                            "description": "Tablet hit count, included when details are requested."
                                        }
                                    },
                                    "description": "Schema fuer Counterarchives."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "data": [
                                            {
                                                "date": "2026-06-12",
                                                "multishop_id": 1,
                                                "hits": 120,
                                                "location": "/private/counterarchives/2026-06-12?multishop_id=1"
                                            }
                                        ],
                                        "total": 1,
                                        "limit": 100,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Zaehlerarchiv-Eintrag abrufen",
                "description": "Gibt einen einzelnen Zaehlerarchiv-Eintrag zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCounterarchivesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/counterarchives/search": {
            "get": {
                "tags": [
                    "counterarchives"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "date": {
                                                        "type": "string",
                                                        "description": "Archive date in YYYY-MM-DD format."
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "description": "Multishop id."
                                                    },
                                                    "hits": {
                                                        "type": "integer",
                                                        "description": "Total hit count."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "hits_mobile": {
                                                        "type": "integer",
                                                        "description": "Mobile hit count, included when details are requested."
                                                    },
                                                    "hits_desktop": {
                                                        "type": "integer",
                                                        "description": "Desktop hit count, included when details are requested."
                                                    },
                                                    "hits_tablet": {
                                                        "type": "integer",
                                                        "description": "Tablet hit count, included when details are requested."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Counterarchives."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "data": [
                                            {
                                                "date": "2026-06-12",
                                                "multishop_id": 1,
                                                "hits": 120,
                                                "location": "/private/counterarchives/2026-06-12?multishop_id=1"
                                            }
                                        ],
                                        "total": 1,
                                        "limit": 100,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Zaehlerarchiv-Eintraege suchen",
                "description": "Sucht Zaehlerarchiv-Eintraege nach Datum oder Multishop.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCounterarchivesSearchPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/counterarchives/summary": {
            "get": {
                "tags": [
                    "counterarchives"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "multishop_id": {
                                            "type": "integer",
                                            "description": "ID des Multishops."
                                        },
                                        "today": {
                                            "type": "object",
                                            "properties": {
                                                "date": {
                                                    "type": "string",
                                                    "description": "Datum des Datensatzes."
                                                },
                                                "hits": {
                                                    "type": "integer",
                                                    "description": "Anzahl der Treffer."
                                                }
                                            },
                                            "description": "Feld `today` des Datensatzes."
                                        },
                                        "total_hits": {
                                            "type": "integer",
                                            "description": "Feld `total_hits` des Datensatzes."
                                        },
                                        "online_users": {
                                            "type": "integer",
                                            "description": "Feld `online_users` des Datensatzes."
                                        }
                                    },
                                    "description": "Schema fuer Counterarchives."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "multishop_id": 1,
                                        "today": {
                                            "date": "2026-06-12",
                                            "hits": 120
                                        },
                                        "total_hits": 2500,
                                        "online_users": 3
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Zaehlerarchiv zusammenfassen",
                "description": "Gibt eine Zusammenfassung der Zaehlerarchiv-Eintraege zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCounterarchivesSummaryPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/countries": {
            "get": {
                "tags": [
                    "countries"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "name": {
                                                "type": "string"
                                            },
                                            "iso2": {
                                                "type": "string"
                                            },
                                            "iso3": {
                                                "type": "string"
                                            },
                                            "active": {
                                                "type": "boolean"
                                            },
                                            "eu": {
                                                "type": "boolean"
                                            },
                                            "zone_id": {
                                                "type": "integer"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 81,
                                        "location": "https://localhost/shop/api/v2/private/countries/81",
                                        "name": "Deutschland",
                                        "iso2": "DE",
                                        "iso3": "DEU",
                                        "active": true,
                                        "eu": true,
                                        "zone_id": 1
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Laender abrufen.",
                "description": "Liefert Daten fuer mehrere Laender. Schreibaktionen sind bewusst nicht Teil dieses Controllers, weil Laender mit Kunden, Versand, Steuern, Tracking, PLZ-Pruefung und Bundeslaendern verknuepft sind.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCountriesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "iso2": {
                                    "type": "string"
                                },
                                "iso3": {
                                    "type": "string"
                                },
                                "status": {
                                    "type": "integer"
                                },
                                "eu": {
                                    "type": "integer"
                                },
                                "zone_id": {
                                    "type": "integer"
                                }
                            }
                        },
                        "description": "Filtert nach Name, ISO-Code, Status, OSS oder Versandzone"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "countries.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "countries.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/countries/{id}": {
            "get": {
                "tags": [
                    "countries"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "alternative_name1": {
                                            "type": "string"
                                        },
                                        "alternative_name2": {
                                            "type": "string"
                                        },
                                        "iso2": {
                                            "type": "string"
                                        },
                                        "iso3": {
                                            "type": "string"
                                        },
                                        "active": {
                                            "type": "boolean"
                                        },
                                        "zone_id": {
                                            "type": "integer"
                                        },
                                        "zone_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "show_tax": {
                                            "type": "boolean"
                                        },
                                        "no_tax_gross": {
                                            "type": "boolean"
                                        },
                                        "eu": {
                                            "type": "boolean"
                                        },
                                        "costs": {
                                            "type": "number"
                                        },
                                        "exclude_tracking": {
                                            "type": "boolean"
                                        },
                                        "default_customer_group_id": {
                                            "type": "integer"
                                        },
                                        "default_customer_group_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "default_language_id": {
                                            "type": "integer"
                                        },
                                        "default_language_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "default_currency_id": {
                                            "type": "integer"
                                        },
                                        "default_currency_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "delivery_limits": {
                                            "type": "object"
                                        },
                                        "zip_check": {
                                            "type": "object"
                                        },
                                        "states": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 81,
                                    "location": "https://localhost/shop/api/v2/private/countries/81",
                                    "name": "Deutschland",
                                    "alternative_name1": "Germany",
                                    "alternative_name2": "",
                                    "iso2": "DE",
                                    "iso3": "DEU",
                                    "active": true,
                                    "zone_id": 1,
                                    "zone_location": "https://localhost/shop/api/v2/private/shippingzones/1",
                                    "show_tax": true,
                                    "no_tax_gross": false,
                                    "eu": true,
                                    "costs": 0,
                                    "exclude_tracking": false,
                                    "default_customer_group_id": 0,
                                    "default_customer_group_location": null,
                                    "default_language_id": 1,
                                    "default_language_location": "https://localhost/shop/api/v2/private/languages/1",
                                    "default_currency_id": 1,
                                    "default_currency_location": "https://localhost/shop/api/v2/private/currencies/1",
                                    "delivery_limits": {
                                        "year": 0,
                                        "package_value": 0,
                                        "package_weight": 0,
                                        "year_action_type": 1,
                                        "year_action_always": false,
                                        "standard_tax_id": 1,
                                        "standard_tax_location": "https://localhost/shop/api/v2/private/taxes/1",
                                        "reduced_tax_id": 2,
                                        "reduced_tax_location": "https://localhost/shop/api/v2/private/taxes/2",
                                        "vat_id": "DE123456789"
                                    },
                                    "zip_check": {
                                        "include_zip": "",
                                        "exclude_zip": "",
                                        "check_account": false,
                                        "check_shipping": false,
                                        "check_billing": false
                                    },
                                    "states": [
                                        {
                                            "id": 1,
                                            "name": "Bayern",
                                            "country_id": 81
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Landes abrufen.",
                "description": "Liefert Daten zu einem Land inklusive Bundeslaendern.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCountriesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Land-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "countries.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "countries.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/countries/search": {
            "get": {
                "tags": [
                    "countries"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "alternative_name1": {
                                            "type": "string"
                                        },
                                        "alternative_name2": {
                                            "type": "string"
                                        },
                                        "iso2": {
                                            "type": "string"
                                        },
                                        "iso3": {
                                            "type": "string"
                                        },
                                        "active": {
                                            "type": "boolean"
                                        },
                                        "zone_id": {
                                            "type": "integer"
                                        },
                                        "zone_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "show_tax": {
                                            "type": "boolean"
                                        },
                                        "no_tax_gross": {
                                            "type": "boolean"
                                        },
                                        "eu": {
                                            "type": "boolean"
                                        },
                                        "costs": {
                                            "type": "number"
                                        },
                                        "exclude_tracking": {
                                            "type": "boolean"
                                        },
                                        "default_customer_group_id": {
                                            "type": "integer"
                                        },
                                        "default_customer_group_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "default_language_id": {
                                            "type": "integer"
                                        },
                                        "default_language_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "default_currency_id": {
                                            "type": "integer"
                                        },
                                        "default_currency_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "delivery_limits": {
                                            "type": "object"
                                        },
                                        "zip_check": {
                                            "type": "object"
                                        },
                                        "states": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 81,
                                    "location": "https://localhost/shop/api/v2/private/countries/81",
                                    "name": "Deutschland",
                                    "alternative_name1": "Germany",
                                    "alternative_name2": "",
                                    "iso2": "DE",
                                    "iso3": "DEU",
                                    "active": true,
                                    "zone_id": 1,
                                    "zone_location": "https://localhost/shop/api/v2/private/shippingzones/1",
                                    "show_tax": true,
                                    "no_tax_gross": false,
                                    "eu": true,
                                    "costs": 0,
                                    "exclude_tracking": false,
                                    "default_customer_group_id": 0,
                                    "default_customer_group_location": null,
                                    "default_language_id": 1,
                                    "default_language_location": "https://localhost/shop/api/v2/private/languages/1",
                                    "default_currency_id": 1,
                                    "default_currency_location": "https://localhost/shop/api/v2/private/currencies/1",
                                    "delivery_limits": {
                                        "year": 0,
                                        "package_value": 0,
                                        "package_weight": 0,
                                        "year_action_type": 1,
                                        "year_action_always": false,
                                        "standard_tax_id": 1,
                                        "standard_tax_location": "https://localhost/shop/api/v2/private/taxes/1",
                                        "reduced_tax_id": 2,
                                        "reduced_tax_location": "https://localhost/shop/api/v2/private/taxes/2",
                                        "vat_id": "DE123456789"
                                    },
                                    "zip_check": {
                                        "include_zip": "",
                                        "exclude_zip": "",
                                        "check_account": false,
                                        "check_shipping": false,
                                        "check_billing": false
                                    },
                                    "states": [
                                        {
                                            "id": 1,
                                            "name": "Bayern",
                                            "country_id": 81
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Laendern nach einem String.",
                "description": "Sucht in Laendern nach Name oder ISO-Code.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCountriesSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "countries.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "countries.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/countrystates": {
            "get": {
                "tags": [
                    "countrystates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "get_countrystate.json"
                                                    }
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "example": 16
                                                },
                                                "limit": {
                                                    "type": "integer",
                                                    "example": 50
                                                },
                                                "offset": {
                                                    "type": "integer",
                                                    "example": 0
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "data": [
                                            {
                                                "id": 1,
                                                "location": "https://localhost/shop/api/v2/private/countrystates/1",
                                                "name": "Sachsen",
                                                "country_id": 81,
                                                "country_location": "https://localhost/shop/api/v2/private/countries/81"
                                            }
                                        ],
                                        "total": 1,
                                        "limit": 50,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Countrystates abrufen.",
                "description": "Liefert eine paginierte Liste fuer Countrystates.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetCountrystatesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "countrystates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/countrystates/1"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Sachsen"
                                                },
                                                "country_id": {
                                                    "type": "integer",
                                                    "example": 81
                                                },
                                                "country_location": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "example": "https://localhost/shop/api/v2/private/countries/81"
                                                },
                                                "country_name": {
                                                    "type": "string",
                                                    "example": "Germany"
                                                },
                                                "country_iso2": {
                                                    "type": "string",
                                                    "example": "DE"
                                                },
                                                "country_iso3": {
                                                    "type": "string",
                                                    "example": "DEU"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "country_id": 81,
                                    "name": "Sachsen"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Countrystates anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Countrystates.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostCountrystatesPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "country_id",
                                    "name"
                                ],
                                "properties": {
                                    "country_id": {
                                        "type": "integer",
                                        "example": 81
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Sachsen"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/countrystates/{id}": {
            "get": {
                "tags": [
                    "countrystates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/countrystates/1"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Sachsen"
                                                },
                                                "country_id": {
                                                    "type": "integer",
                                                    "example": 81
                                                },
                                                "country_location": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "example": "https://localhost/shop/api/v2/private/countries/81"
                                                },
                                                "country_name": {
                                                    "type": "string",
                                                    "example": "Germany"
                                                },
                                                "country_iso2": {
                                                    "type": "string",
                                                    "example": "DE"
                                                },
                                                "country_iso3": {
                                                    "type": "string",
                                                    "example": "DEU"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "data": {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/countrystates/1",
                                            "name": "Sachsen",
                                            "country_id": 81,
                                            "country_location": "https://localhost/shop/api/v2/private/countries/81",
                                            "country_name": "Germany",
                                            "country_iso2": "DE",
                                            "country_iso3": "DEU"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Countrystates Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Countrystates.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetCountrystatesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "countrystates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/countrystates/1"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Sachsen"
                                                },
                                                "country_id": {
                                                    "type": "integer",
                                                    "example": 81
                                                },
                                                "country_location": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "example": "https://localhost/shop/api/v2/private/countries/81"
                                                },
                                                "country_name": {
                                                    "type": "string",
                                                    "example": "Germany"
                                                },
                                                "country_iso2": {
                                                    "type": "string",
                                                    "example": "DE"
                                                },
                                                "country_iso3": {
                                                    "type": "string",
                                                    "example": "DEU"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "country_id": 81,
                                    "name": "Sachsen"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Countrystates aktualisieren.",
                "description": "Schreibt die uebergebenen Felder fuer Countrystates.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutCountrystatesDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "country_id",
                                    "name"
                                ],
                                "properties": {
                                    "country_id": {
                                        "type": "integer",
                                        "example": 81
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Sachsen"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "countrystates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Countrystates loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Countrystates.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteCountrystatesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/countrystates/search": {
            "get": {
                "tags": [
                    "countrystates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "data": {
                                                    "type": "array",
                                                    "items": {
                                                        "$ref": "get_countrystate.json"
                                                    }
                                                },
                                                "total": {
                                                    "type": "integer",
                                                    "example": 2
                                                },
                                                "limit": {
                                                    "type": "integer",
                                                    "example": 20
                                                },
                                                "offset": {
                                                    "type": "integer",
                                                    "example": 0
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "data": [
                                            {
                                                "id": 1,
                                                "location": "https://localhost/shop/api/v2/private/countrystates/1",
                                                "name": "Sachsen",
                                                "country_id": 81,
                                                "country_location": "https://localhost/shop/api/v2/private/countries/81"
                                            }
                                        ],
                                        "total": 1,
                                        "limit": 20,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Countrystates suchen.",
                "description": "Sucht Datensaetze fuer Countrystates anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetCountrystatesSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/currencies": {
            "get": {
                "tags": [
                    "currencies"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/currencies/1"
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Euro"
                                                    },
                                                    "short_name": {
                                                        "type": "string",
                                                        "example": "EUR"
                                                    },
                                                    "iso": {
                                                        "type": "string",
                                                        "example": "EUR"
                                                    },
                                                    "exchange_rate": {
                                                        "type": "number",
                                                        "example": 1
                                                    },
                                                    "is_default": {
                                                        "type": "boolean",
                                                        "example": true
                                                    },
                                                    "status_name": {
                                                        "type": "string",
                                                        "example": "default"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/currencies/1",
                                            "name": "Euro",
                                            "short_name": "EUR",
                                            "iso": "EUR",
                                            "exchange_rate": 1,
                                            "is_default": true,
                                            "status_name": "default"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Currencies abrufen.",
                "description": "Liefert eine paginierte Liste fuer Currencies.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetCurrenciesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "currencies"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/currencies/1"
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Euro"
                                                    },
                                                    "short_name": {
                                                        "type": "string",
                                                        "example": "EUR"
                                                    },
                                                    "iso": {
                                                        "type": "string",
                                                        "example": "EUR"
                                                    },
                                                    "exchange_rate": {
                                                        "type": "number",
                                                        "example": 1
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "name": "Euro",
                                    "short_name": "EUR",
                                    "exchange_rate": 1
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Currencies anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Currencies.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostCurrenciesPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name",
                                    "short_name",
                                    "iso",
                                    "exchange_rate"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Euro"
                                    },
                                    "short_name": {
                                        "type": "string",
                                        "example": "EUR"
                                    },
                                    "iso": {
                                        "type": "string",
                                        "example": "EUR"
                                    },
                                    "exchange_rate": {
                                        "type": "number",
                                        "example": 1
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/currencies/{id}": {
            "get": {
                "tags": [
                    "currencies"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/currencies/1"
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Euro"
                                                    },
                                                    "short_name": {
                                                        "type": "string",
                                                        "example": "EUR"
                                                    },
                                                    "iso": {
                                                        "type": "string",
                                                        "example": "EUR"
                                                    },
                                                    "exchange_rate": {
                                                        "type": "number",
                                                        "example": 1
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/currencies/1",
                                            "name": "Euro",
                                            "short_name": "EUR",
                                            "iso": "EUR",
                                            "exchange_rate": 1
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Currencies Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Currencies.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetCurrenciesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "currencies"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/currencies/1"
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Euro"
                                                    },
                                                    "short_name": {
                                                        "type": "string",
                                                        "example": "EUR"
                                                    },
                                                    "iso": {
                                                        "type": "string",
                                                        "example": "EUR"
                                                    },
                                                    "exchange_rate": {
                                                        "type": "number",
                                                        "example": 1
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "name": "Euro",
                                    "short_name": "EUR",
                                    "exchange_rate": 1
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Currencies aktualisieren.",
                "description": "Schreibt die uebergebenen Felder fuer Currencies.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutCurrenciesDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name",
                                    "short_name",
                                    "iso",
                                    "exchange_rate"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Euro"
                                    },
                                    "short_name": {
                                        "type": "string",
                                        "example": "EUR"
                                    },
                                    "iso": {
                                        "type": "string",
                                        "example": "EUR"
                                    },
                                    "exchange_rate": {
                                        "type": "number",
                                        "example": 1
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "currencies"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Currencies loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Currencies.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteCurrenciesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/currencies/search": {
            "get": {
                "tags": [
                    "currencies"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/currencies/1"
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Euro"
                                                    },
                                                    "short_name": {
                                                        "type": "string",
                                                        "example": "EUR"
                                                    },
                                                    "iso": {
                                                        "type": "string",
                                                        "example": "EUR"
                                                    },
                                                    "exchange_rate": {
                                                        "type": "number",
                                                        "example": 1
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/currencies/1",
                                            "name": "Euro",
                                            "short_name": "EUR",
                                            "iso": "EUR",
                                            "exchange_rate": 1
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Currencies suchen.",
                "description": "Sucht Datensaetze fuer Currencies anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetCurrenciesSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/custgroupdiscounts": {
            "get": {
                "tags": [
                    "custgroupdiscounts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "custgroup_id": {
                                                        "type": "integer",
                                                        "description": "ID der Kundengruppe."
                                                    },
                                                    "threshold_value": {
                                                        "type": "number",
                                                        "description": "Schwellenwert fuer den Rabatt."
                                                    },
                                                    "discount_percent": {
                                                        "type": "number",
                                                        "description": "Rabatt in Prozent."
                                                    },
                                                    "customer_group": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "description": "Interne ID des Datensatzes."
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                            },
                                                            "location": {
                                                                "type": "string",
                                                                "description": "API-URL zur Detailansicht des Datensatzes."
                                                            }
                                                        },
                                                        "description": "Feld `customer_group` des Datensatzes."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Custgroupdiscounts."
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Kundengruppen-Rabattstaffeln abrufen",
                "description": "Gibt Kundengruppen-Rabattstaffeln mit optionalen Filtern und Details zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCustgroupdiscountsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Kundengruppendetails ausgeben."
                    },
                    {
                        "name": "custgroup_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Kundengruppe filtern."
                    },
                    {
                        "name": "min_threshold_value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Nach minimalem Schwellenwert filtern."
                    },
                    {
                        "name": "max_threshold_value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Nach maximalem Schwellenwert filtern."
                    },
                    {
                        "name": "min_discount_percent",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Nach minimalem Rabattprozent filtern."
                    },
                    {
                        "name": "max_discount_percent",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "number"
                        },
                        "description": "Nach maximalem Rabattprozent filtern."
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "custgroupdiscounts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Interne ID des Datensatzes."
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API-URL zur Detailansicht des Datensatzes."
                                        },
                                        "custgroup_id": {
                                            "type": "integer",
                                            "description": "ID der Kundengruppe."
                                        },
                                        "threshold_value": {
                                            "type": "number",
                                            "description": "Schwellenwert fuer den Rabatt."
                                        },
                                        "discount_percent": {
                                            "type": "number",
                                            "description": "Rabatt in Prozent."
                                        },
                                        "customer_group": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "description": "Interne ID des Datensatzes."
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "description": "API-URL zur Detailansicht des Datensatzes."
                                                }
                                            },
                                            "description": "Feld `customer_group` des Datensatzes."
                                        }
                                    },
                                    "description": "Schema fuer Custgroupdiscounts."
                                },
                                "example": {
                                    "custgroup_id": 2,
                                    "threshold_value": 100,
                                    "discount_percent": 5
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Kundengruppen-Rabattstaffel anlegen",
                "description": "Legt eine Kundengruppen-Rabattstaffel an.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostCustgroupdiscountsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "custgroup_id",
                                    "threshold_value",
                                    "discount_percent"
                                ],
                                "properties": {
                                    "custgroup_id": {
                                        "type": "integer",
                                        "description": "ID der Kundengruppe."
                                    },
                                    "threshold_value": {
                                        "type": "number",
                                        "description": "Schwellenwert fuer den Rabatt."
                                    },
                                    "discount_percent": {
                                        "type": "number",
                                        "description": "Rabatt in Prozent."
                                    }
                                },
                                "description": "Schema fuer Custgroupdiscounts."
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/custgroupdiscounts/{id}": {
            "get": {
                "tags": [
                    "custgroupdiscounts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Interne ID des Datensatzes."
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API-URL zur Detailansicht des Datensatzes."
                                        },
                                        "custgroup_id": {
                                            "type": "integer",
                                            "description": "ID der Kundengruppe."
                                        },
                                        "threshold_value": {
                                            "type": "number",
                                            "description": "Schwellenwert fuer den Rabatt."
                                        },
                                        "discount_percent": {
                                            "type": "number",
                                            "description": "Rabatt in Prozent."
                                        },
                                        "customer_group": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "description": "Interne ID des Datensatzes."
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "description": "API-URL zur Detailansicht des Datensatzes."
                                                }
                                            },
                                            "description": "Feld `customer_group` des Datensatzes."
                                        }
                                    },
                                    "description": "Schema fuer Custgroupdiscounts."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/private/custgroupdiscounts/1",
                                            "custgroup_id": 2,
                                            "threshold_value": 100,
                                            "discount_percent": 5
                                        }
                                    ],
                                    "meta": {
                                        "total": 1,
                                        "limit": 100,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Kundengruppen-Rabattstaffel abrufen",
                "description": "Gibt eine einzelne Kundengruppen-Rabattstaffel zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCustgroupdiscountsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "custgroupdiscounts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Interne ID des Datensatzes."
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API-URL zur Detailansicht des Datensatzes."
                                        },
                                        "custgroup_id": {
                                            "type": "integer",
                                            "description": "ID der Kundengruppe."
                                        },
                                        "threshold_value": {
                                            "type": "number",
                                            "description": "Schwellenwert fuer den Rabatt."
                                        },
                                        "discount_percent": {
                                            "type": "number",
                                            "description": "Rabatt in Prozent."
                                        },
                                        "customer_group": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "description": "Interne ID des Datensatzes."
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "description": "API-URL zur Detailansicht des Datensatzes."
                                                }
                                            },
                                            "description": "Feld `customer_group` des Datensatzes."
                                        }
                                    },
                                    "description": "Schema fuer Custgroupdiscounts."
                                },
                                "example": {
                                    "threshold_value": 150,
                                    "discount_percent": 7.5
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Kundengruppen-Rabattstaffel aktualisieren",
                "description": "Aktualisiert eine Kundengruppen-Rabattstaffel.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutCustgroupdiscountsDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "custgroup_id": {
                                        "type": "integer",
                                        "description": "ID der Kundengruppe."
                                    },
                                    "threshold_value": {
                                        "type": "number",
                                        "description": "Schwellenwert fuer den Rabatt."
                                    },
                                    "discount_percent": {
                                        "type": "number",
                                        "description": "Rabatt in Prozent."
                                    }
                                },
                                "description": "Schema fuer Custgroupdiscounts."
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "custgroupdiscounts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Kundengruppen-Rabattstaffel loeschen",
                "description": "Loescht eine Kundengruppen-Rabattstaffel.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteCustgroupdiscountsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/custgroupdiscounts/search": {
            "get": {
                "tags": [
                    "custgroupdiscounts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "custgroup_id": {
                                                        "type": "integer",
                                                        "description": "ID der Kundengruppe."
                                                    },
                                                    "threshold_value": {
                                                        "type": "number",
                                                        "description": "Schwellenwert fuer den Rabatt."
                                                    },
                                                    "discount_percent": {
                                                        "type": "number",
                                                        "description": "Rabatt in Prozent."
                                                    },
                                                    "customer_group": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "description": "Interne ID des Datensatzes."
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                            },
                                                            "location": {
                                                                "type": "string",
                                                                "description": "API-URL zur Detailansicht des Datensatzes."
                                                            }
                                                        },
                                                        "description": "Feld `customer_group` des Datensatzes."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Custgroupdiscounts."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/private/custgroupdiscounts/1",
                                            "custgroup_id": 2,
                                            "threshold_value": 100,
                                            "discount_percent": 5,
                                            "customer_group": {
                                                "id": 2,
                                                "name": "Haendler",
                                                "location": "/private/customergroups/2"
                                            }
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Kundengruppen-Rabattstaffeln suchen",
                "description": "Sucht Kundengruppen-Rabattstaffeln nach Kundengruppe oder Schwellenwert.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCustgroupdiscountsSearchPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/customergroups": {
            "get": {
                "tags": [
                    "customergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "get_customergroup"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 2,
                                        "location": "https://localhost/shop/api/v2/private/customergroups/2",
                                        "name": "B2B Premium customers",
                                        "price_display_type_id": 1,
                                        "price_display_type_name": "netto",
                                        "price_group_id": 1,
                                        "price_group_name": "Wholesale",
                                        "price_group_location": "https://localhost/shop/api/v2/private/pricegroups/1",
                                        "minimum_order_sum": 100
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Kundengruppen abrufen.",
                "description": "Liefert Daten fuer mehrere Kundengruppen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCustomergroupsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                }
                            }
                        },
                        "description": "Filtert nach Bezeichnung"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "customergroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "customergroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "customergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Kundengruppe erstellen.",
                "description": "Erstellt eine Kundengruppe.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostCustomergroupsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Customer group name"
                                    },
                                    "account_text": {
                                        "type": "string",
                                        "description": "Account page text"
                                    },
                                    "description": {
                                        "type": "string",
                                        "description": "Description"
                                    },
                                    "price_display_type_id": {
                                        "type": "integer",
                                        "description": "Price display type id, 0 gross, 1 net"
                                    },
                                    "price_group_id": {
                                        "type": "integer",
                                        "description": "Assigned price group id"
                                    },
                                    "minimum_order_sum": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Minimum order sum"
                                    },
                                    "eu_tax_adjustment": {
                                        "type": "boolean",
                                        "description": "Use OSS tax adjustment"
                                    },
                                    "first_order_customer_group_id": {
                                        "type": "integer",
                                        "description": "Customer group assigned after first order"
                                    },
                                    "bill_template_id": {
                                        "type": "integer",
                                        "description": "Bill template id"
                                    },
                                    "billsafe_bill_template_id": {
                                        "type": "integer",
                                        "description": "Billsafe bill template id"
                                    },
                                    "reminder_1_template_id": {
                                        "type": "integer",
                                        "description": "First reminder template id"
                                    },
                                    "reminder_2_template_id": {
                                        "type": "integer",
                                        "description": "Second reminder template id"
                                    },
                                    "delivery_note_template_id": {
                                        "type": "integer",
                                        "description": "Delivery note template id"
                                    },
                                    "order_template_id": {
                                        "type": "integer",
                                        "description": "Order template id"
                                    },
                                    "order_position_template_id": {
                                        "type": "integer",
                                        "description": "Order position template id"
                                    }
                                }
                            },
                            "example": {
                                "name": "B2B Premium customers",
                                "account_text": "<p>Welcome to your business account.</p>",
                                "price_display_type_id": 1,
                                "price_group_id": 1,
                                "minimum_order_sum": 100,
                                "eu_tax_adjustment": false
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "customergroups.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "customergroups.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/customergroups/{id}": {
            "get": {
                "tags": [
                    "customergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Unique customer group id"
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API resource location"
                                        },
                                        "name": {
                                            "type": "string",
                                            "description": "Customer group name"
                                        },
                                        "account_text": {
                                            "type": "string",
                                            "description": "Account page text"
                                        },
                                        "description": {
                                            "type": "string",
                                            "description": "Description"
                                        },
                                        "price_display_type_id": {
                                            "type": "integer",
                                            "description": "Price display type id, 0 gross, 1 net"
                                        },
                                        "price_display_type_name": {
                                            "type": "string",
                                            "description": "Price display type name"
                                        },
                                        "price_group_id": {
                                            "type": "integer",
                                            "description": "Assigned price group id"
                                        },
                                        "price_group_name": {
                                            "type": "string",
                                            "description": "Assigned price group name"
                                        },
                                        "price_group_location": {
                                            "type": "string",
                                            "description": "Assigned price group API resource location"
                                        },
                                        "minimum_order_sum": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Minimum order sum"
                                        },
                                        "eu_tax_adjustment": {
                                            "type": "boolean",
                                            "description": "Use OSS tax adjustment"
                                        },
                                        "first_order_customer_group_id": {
                                            "type": "integer",
                                            "description": "Customer group assigned after first order"
                                        },
                                        "multishop_ids": {
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            },
                                            "description": "Assigned multishop ids"
                                        },
                                        "template_ids": {
                                            "type": "object",
                                            "properties": {
                                                "bill": {
                                                    "type": "integer"
                                                },
                                                "billsafe_bill": {
                                                    "type": "integer"
                                                },
                                                "reminder_1": {
                                                    "type": "integer"
                                                },
                                                "reminder_2": {
                                                    "type": "integer"
                                                },
                                                "delivery_note": {
                                                    "type": "integer"
                                                },
                                                "order": {
                                                    "type": "integer"
                                                },
                                                "order_position": {
                                                    "type": "integer"
                                                }
                                            }
                                        },
                                        "payment_type_ids": {
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            },
                                            "description": "Assigned payment type ids"
                                        },
                                        "payment_types": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "payment_type_id": {
                                                        "type": "integer"
                                                    },
                                                    "payment_type_name": {
                                                        "type": "string"
                                                    },
                                                    "payment_type_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "uri"
                                                    }
                                                }
                                            }
                                        },
                                        "customer_count": {
                                            "type": "integer",
                                            "description": "Number of customers in this group"
                                        },
                                        "is_default_customer_group": {
                                            "type": "boolean",
                                            "description": "Default customer group flag"
                                        },
                                        "is_guest_customer_group": {
                                            "type": "boolean",
                                            "description": "Guest customer group flag"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 2,
                                    "location": "https://localhost/shop/api/v2/private/customergroups/2",
                                    "name": "B2B Premium customers",
                                    "account_text": "<p>Welcome to your business account.</p>",
                                    "description": "",
                                    "price_display_type_id": 1,
                                    "price_display_type_name": "netto",
                                    "price_group_id": 1,
                                    "price_group_name": "Wholesale",
                                    "price_group_location": "https://localhost/shop/api/v2/private/pricegroups/1",
                                    "minimum_order_sum": 100,
                                    "eu_tax_adjustment": false,
                                    "first_order_customer_group_id": 0,
                                    "multishop_ids": [
                                        1
                                    ],
                                    "template_ids": {
                                        "bill": 0,
                                        "billsafe_bill": 0,
                                        "reminder_1": 0,
                                        "reminder_2": 0,
                                        "delivery_note": 0,
                                        "order": 0,
                                        "order_position": 0
                                    },
                                    "payment_type_ids": [
                                        1,
                                        2
                                    ],
                                    "payment_types": [
                                        {
                                            "payment_type_id": 1,
                                            "payment_type_name": "Vorkasse",
                                            "payment_type_location": "https://localhost/shop/api/v2/private/paymenttypes/1"
                                        }
                                    ],
                                    "customer_count": 42,
                                    "is_default_customer_group": false,
                                    "is_guest_customer_group": false
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Kundengruppe abrufen.",
                "description": "Liefert Daten zu einer Kundengruppe.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCustomergroupsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Kundengruppen-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "customergroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "customergroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "customergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Kundengruppe aktualisieren.",
                "description": "Aktualisiert eine Kundengruppe.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutCustomergroupsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Kundengruppen-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Customer group name"
                                    },
                                    "account_text": {
                                        "type": "string",
                                        "description": "Account page text"
                                    },
                                    "description": {
                                        "type": "string",
                                        "description": "Description"
                                    },
                                    "price_display_type_id": {
                                        "type": "integer",
                                        "description": "Price display type id, 0 gross, 1 net"
                                    },
                                    "price_group_id": {
                                        "type": "integer",
                                        "description": "Assigned price group id"
                                    },
                                    "minimum_order_sum": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Minimum order sum"
                                    },
                                    "eu_tax_adjustment": {
                                        "type": "boolean",
                                        "description": "Use OSS tax adjustment"
                                    },
                                    "first_order_customer_group_id": {
                                        "type": "integer",
                                        "description": "Customer group assigned after first order"
                                    },
                                    "bill_template_id": {
                                        "type": "integer",
                                        "description": "Bill template id"
                                    },
                                    "billsafe_bill_template_id": {
                                        "type": "integer",
                                        "description": "Billsafe bill template id"
                                    },
                                    "reminder_1_template_id": {
                                        "type": "integer",
                                        "description": "First reminder template id"
                                    },
                                    "reminder_2_template_id": {
                                        "type": "integer",
                                        "description": "Second reminder template id"
                                    },
                                    "delivery_note_template_id": {
                                        "type": "integer",
                                        "description": "Delivery note template id"
                                    },
                                    "order_template_id": {
                                        "type": "integer",
                                        "description": "Order template id"
                                    },
                                    "order_position_template_id": {
                                        "type": "integer",
                                        "description": "Order position template id"
                                    }
                                }
                            },
                            "example": {
                                "name": "B2B Premium customers",
                                "minimum_order_sum": 150
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "customergroups.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "customergroups.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "customergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Kundengruppe loeschen.",
                "description": "Loescht eine Kundengruppe, entfernt Zuordnungen und haengt Kunden auf die Standardkundengruppe um.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteCustomergroupsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Kundengruppen-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "customergroups.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "customergroups.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/customergroups/search": {
            "get": {
                "tags": [
                    "customergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "get_customergroup"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 2,
                                        "location": "https://localhost/shop/api/v2/private/customergroups/2",
                                        "name": "B2B Premium customers",
                                        "account_text": "<p>Welcome to your business account.</p>",
                                        "description": "",
                                        "price_display_type_id": 1,
                                        "price_display_type_name": "netto",
                                        "price_group_id": 1,
                                        "price_group_name": "Wholesale",
                                        "price_group_location": "https://localhost/shop/api/v2/private/pricegroups/1",
                                        "minimum_order_sum": 100,
                                        "eu_tax_adjustment": false,
                                        "first_order_customer_group_id": 0,
                                        "multishop_ids": [
                                            1
                                        ],
                                        "template_ids": {
                                            "bill": 0,
                                            "billsafe_bill": 0,
                                            "reminder_1": 0,
                                            "reminder_2": 0,
                                            "delivery_note": 0,
                                            "order": 0,
                                            "order_position": 0
                                        },
                                        "payment_type_ids": [
                                            1,
                                            2
                                        ],
                                        "customer_count": 42,
                                        "is_default_customer_group": false,
                                        "is_guest_customer_group": false
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Kundengruppen nach einem String.",
                "description": "Sucht in Kundengruppen nach Bezeichnung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCustomergroupsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "customergroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "customergroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/customers": {
            "get": {
                "tags": [
                    "customers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "oneOf": [
                                        {
                                            "description": "Kurzform (Standardausgabe)",
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 123
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "format": "uri",
                                                        "example": "https://localhost/shop/api/v2/private/customers/123"
                                                    }
                                                }
                                            }
                                        },
                                        {
                                            "description": "Detailform (wenn ?details=1)",
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1private~1customers~1{id}/get/responses/200/content/application~1json/schema"
                                            }
                                        }
                                    ]
                                },
                                "examples": {
                                    "Kurzform": {
                                        "summary": "Standardausgabe \u2013 Basisdaten",
                                        "value": [
                                            {
                                                "id": 101,
                                                "location": "https://shop.local/api/v2/private/customers/101"
                                            },
                                            {
                                                "id": 102,
                                                "location": "https://shop.local/api/v2/private/customers/102"
                                            }
                                        ]
                                    },
                                    "Detailform": {
                                        "summary": "Detaillierte Ausgabe",
                                        "value": [
                                            {
                                                "id": 1023,
                                                "location": "https://api.meinshop.de/api/v2/private/customers/1023",
                                                "email": "kontakt@muster-gmbh.de",
                                                "info": "Langj\u00e4hriger Gesch\u00e4ftskunde mit individuellen Preisen.",
                                                "datum": "2023-06-15",
                                                "custgroup_id": 2,
                                                "custgroup_name": "B2B Premiumkunden",
                                                "salutation_id": 1,
                                                "salutation": "Herr",
                                                "firstname": "Max",
                                                "lastname": "Muster",
                                                "company": "Muster GmbH",
                                                "addition": "z. Hd. Einkauf",
                                                "street": "Industriestra\u00dfe",
                                                "streetnr": "12A",
                                                "zip": "70173",
                                                "city": "Stuttgart",
                                                "state": "Baden-W\u00fcrttemberg",
                                                "country_id": 55,
                                                "country": "Deutschland",
                                                "country_iso2": "DE",
                                                "country_iso3": "DEU",
                                                "phone": "0711 123456",
                                                "phone_prefix": "+49",
                                                "fax": "0711 987654",
                                                "fax_prefix": "+49",
                                                "mobil": "0151 22334455",
                                                "mobil_prefix": "+49",
                                                "website": "https://www.muster-gmbh.de",
                                                "birthday": "1985-09-20",
                                                "has_account": true,
                                                "enabled": true,
                                                "discount": 10,
                                                "vat_number": "DE123456789",
                                                "payments": [
                                                    {
                                                        "payment_modul": "invoice",
                                                        "payment_name": "Kauf auf Rechnung"
                                                    },
                                                    {
                                                        "payment_modul": "paypal",
                                                        "payment_name": "PayPal"
                                                    },
                                                    {
                                                        "payment_modul": "creditcard",
                                                        "payment_name": "Kreditkarte"
                                                    }
                                                ]
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Kunden abrufen.",
                "description": "Liefert Daten f\u00fcr mehrere Kunden.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCustomersPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zur\u00fcckgegebenen Datens\u00e4tze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Kundendaten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "custgroup_id": {
                                    "type": "integer"
                                }
                            }
                        },
                        "description": "Filtert nach z.b. Kundengruppe"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "customers.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "customers.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "customers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Kunde erstellen.",
                "description": "Erstellt einen Kunden.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostCustomersPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "id": {
                                        "type": "integer",
                                        "description": "Ein spezielle Kundennummer die erteilt werden soll, sonst wird die n\u00e4chstm\u00f6gliche verwendet."
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "E-Mail-Adresse des Kunden"
                                    },
                                    "info": {
                                        "type": "string",
                                        "description": "Freitext oder Zusatzinformationen zum Kunden"
                                    },
                                    "custgroup_id": {
                                        "type": "integer",
                                        "description": "ID der Kundengruppe"
                                    },
                                    "salutation_id": {
                                        "type": "integer",
                                        "description": "ID der Anrede (z. B. 1=Herr, 2=Frau)"
                                    },
                                    "firstname": {
                                        "type": "string",
                                        "description": "Vorname des Kunden"
                                    },
                                    "lastname": {
                                        "type": "string",
                                        "description": "Nachname des Kunden"
                                    },
                                    "company": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Firmenname (optional)"
                                    },
                                    "addition": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Adresszusatz oder interne Bezeichnung"
                                    },
                                    "street": {
                                        "type": "string",
                                        "description": "Stra\u00dfenname"
                                    },
                                    "streetnr": {
                                        "type": "string",
                                        "description": "Hausnummer"
                                    },
                                    "zip": {
                                        "type": "string",
                                        "description": "Postleitzahl"
                                    },
                                    "city": {
                                        "type": "string",
                                        "description": "Ort oder Stadt"
                                    },
                                    "state": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Bundesland oder Region"
                                    },
                                    "country_id": {
                                        "type": "integer",
                                        "description": "L\u00e4nder-ID (alternativ zu ISO-Codes)"
                                    },
                                    "country_iso2": {
                                        "type": "string",
                                        "description": "Zweistelliger ISO-L\u00e4ndercode (z. B. DE)"
                                    },
                                    "country_iso3": {
                                        "type": "string",
                                        "description": "Dreistelliger ISO-L\u00e4ndercode (z. B. DEU)"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "description": "Telefonnummer"
                                    },
                                    "phone_prefix": {
                                        "type": "string",
                                        "description": "Vorwahl der Telefonnummer"
                                    },
                                    "fax": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Faxnummer (optional)"
                                    },
                                    "fax_prefix": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Fax-Vorwahl (optional)"
                                    },
                                    "mobil": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Mobilnummer"
                                    },
                                    "mobil_prefix": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Mobil-Vorwahl"
                                    },
                                    "website": {
                                        "type": "string",
                                        "format": "uri",
                                        "nullable": true,
                                        "description": "Webseite des Kunden oder Unternehmens"
                                    },
                                    "birthday": {
                                        "type": "string",
                                        "format": "date",
                                        "nullable": true,
                                        "description": "Geburtsdatum des Kunden"
                                    },
                                    "language_id": {
                                        "type": "integer",
                                        "description": "ID der Sprache"
                                    },
                                    "currency_id": {
                                        "type": "integer",
                                        "description": "ID der Waehrung"
                                    },
                                    "has_account": {
                                        "type": "boolean",
                                        "description": "Gibt an, ob der Kunde ein Onlinekonto hat"
                                    },
                                    "enabled": {
                                        "type": "boolean",
                                        "description": "Aktivstatus des Kundenkontos"
                                    },
                                    "discount": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Prozentualer Rabatt des Kunden (z. B. 5.0 f\u00fcr 5%)"
                                    },
                                    "vat_number": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Umsatzsteuer-Identifikationsnummer"
                                    },
                                    "vat_number_valid": {
                                        "type": "integer",
                                        "description": "Status der USt-ID-Pruefung"
                                    },
                                    "agecheck": {
                                        "type": "boolean",
                                        "description": "Gibt an, ob die Alterspruefung aktiv ist"
                                    },
                                    "statsgroup_id": {
                                        "type": "integer",
                                        "description": "ID der Auswertungsgruppe"
                                    },
                                    "marketing_enabled": {
                                        "type": "boolean",
                                        "description": "Marketingeinwilligung des Kunden"
                                    },
                                    "marketing_ip": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "IP-Adresse zur Marketingeinwilligung"
                                    },
                                    "marketing_date": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Datum/Uhrzeit der Marketingeinwilligung"
                                    },
                                    "payments": {
                                        "type": "array",
                                        "description": "Liste der aktivierten Zahlungsarten f\u00fcr diesen Kunden",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "payment_modul": {
                                                    "type": "string",
                                                    "description": "Technischer Modulname der Zahlungsart (z. B. 'invoice', 'paypal', 'creditcard')"
                                                }
                                            },
                                            "required": [
                                                "payment_modul"
                                            ]
                                        }
                                    }
                                },
                                "required": [
                                    "email",
                                    "custgroup_id"
                                ]
                            },
                            "example": {
                                "email": "max.muster@muster-gmbh.de",
                                "info": "Rechnungsadresse wurde aktualisiert",
                                "custgroup_id": 2,
                                "salutation_id": 1,
                                "firstname": "Max",
                                "lastname": "Muster",
                                "company": "Muster GmbH",
                                "addition": "z. Hd. Buchhaltung",
                                "street": "Industriestra\u00dfe",
                                "streetnr": "15B",
                                "zip": "70173",
                                "city": "Stuttgart",
                                "state": "Baden-W\u00fcrttemberg",
                                "country_iso2": "DE",
                                "phone": "0711 123456",
                                "phone_prefix": "+49",
                                "mobil": "0151 22334455",
                                "mobil_prefix": "+49",
                                "website": "https://www.muster-gmbh.de",
                                "birthday": "1985-09-20",
                                "language_id": 1,
                                "currency_id": 1,
                                "has_account": true,
                                "enabled": true,
                                "discount": 7.5,
                                "vat_number": "DE123456789",
                                "vat_number_valid": 1,
                                "agecheck": false,
                                "statsgroup_id": 0,
                                "marketing_enabled": true,
                                "marketing_ip": "127.0.0.1",
                                "marketing_date": "2023-06-15 12:00:00",
                                "payments": [
                                    {
                                        "payment_modul": "invoice"
                                    },
                                    {
                                        "payment_modul": "paypal"
                                    }
                                ]
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "customers.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "customers.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/customers/{id}": {
            "get": {
                "tags": [
                    "customers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Unique customer id"
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API resource location"
                                        },
                                        "email": {
                                            "type": "string",
                                            "format": "email",
                                            "description": "Customer email address"
                                        },
                                        "info": {
                                            "type": "string",
                                            "description": "Additional customer information"
                                        },
                                        "datum": {
                                            "type": "string",
                                            "format": "date",
                                            "description": "Registration or creation date"
                                        },
                                        "custgroup_id": {
                                            "type": "integer",
                                            "description": "Customer group id"
                                        },
                                        "custgroup_name": {
                                            "type": "string",
                                            "description": "Customer group name"
                                        },
                                        "custgroup_location": {
                                            "type": "string",
                                            "description": "Customer group API resource location"
                                        },
                                        "salutation_id": {
                                            "type": "integer",
                                            "description": "Salutation id"
                                        },
                                        "salutation": {
                                            "type": "string",
                                            "description": "Salutation name"
                                        },
                                        "firstname": {
                                            "type": "string",
                                            "description": "First name"
                                        },
                                        "lastname": {
                                            "type": "string",
                                            "description": "Last name"
                                        },
                                        "company": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Company name"
                                        },
                                        "addition": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Address addition"
                                        },
                                        "street": {
                                            "type": "string",
                                            "description": "Street"
                                        },
                                        "streetnr": {
                                            "type": "string",
                                            "description": "Street number"
                                        },
                                        "zip": {
                                            "type": "string",
                                            "description": "Postal code"
                                        },
                                        "city": {
                                            "type": "string",
                                            "description": "City"
                                        },
                                        "state": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "State or region"
                                        },
                                        "country_id": {
                                            "type": "integer",
                                            "description": "Country id"
                                        },
                                        "country": {
                                            "type": "string",
                                            "description": "Country name"
                                        },
                                        "country_iso2": {
                                            "type": "string",
                                            "description": "ISO-2 country code"
                                        },
                                        "country_iso3": {
                                            "type": "string",
                                            "description": "ISO-3 country code"
                                        },
                                        "phone": {
                                            "type": "string",
                                            "description": "Phone number"
                                        },
                                        "phone_prefix": {
                                            "type": "string",
                                            "description": "Phone prefix"
                                        },
                                        "fax": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Fax number"
                                        },
                                        "fax_prefix": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Fax prefix"
                                        },
                                        "mobil": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Mobile number"
                                        },
                                        "mobil_prefix": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Mobile prefix"
                                        },
                                        "website": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri",
                                            "description": "Website"
                                        },
                                        "birthday": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "date",
                                            "description": "Birth date"
                                        },
                                        "language_id": {
                                            "type": "integer",
                                            "description": "Language id"
                                        },
                                        "language_location": {
                                            "type": "string",
                                            "description": "Language API resource location"
                                        },
                                        "language_name": {
                                            "type": "string",
                                            "description": "Language name"
                                        },
                                        "language_iso2": {
                                            "type": "string",
                                            "description": "Language ISO-2 code"
                                        },
                                        "currency_id": {
                                            "type": "integer",
                                            "description": "Currency id"
                                        },
                                        "currency_name": {
                                            "type": "string",
                                            "description": "Currency name"
                                        },
                                        "currency_iso": {
                                            "type": "string",
                                            "description": "Currency ISO code"
                                        },
                                        "has_account": {
                                            "type": "boolean",
                                            "description": "Whether an active customer account exists"
                                        },
                                        "enabled": {
                                            "type": "boolean",
                                            "description": "Whether login is enabled"
                                        },
                                        "discount": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Customer discount percentage"
                                        },
                                        "vat_number": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "VAT identification number"
                                        },
                                        "vat_number_valid": {
                                            "type": "integer",
                                            "description": "VAT validation status"
                                        },
                                        "agecheck": {
                                            "type": "boolean",
                                            "description": "Whether age check is active"
                                        },
                                        "statsgroup_id": {
                                            "type": "integer",
                                            "description": "Statistics group id"
                                        },
                                        "marketing_enabled": {
                                            "type": "boolean",
                                            "description": "Marketing consent flag"
                                        },
                                        "marketing_ip": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Marketing consent IP address"
                                        },
                                        "marketing_date": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Marketing consent date"
                                        },
                                        "payments": {
                                            "type": "array",
                                            "description": "Active customer payment types",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "payment_modul": {
                                                        "type": "string",
                                                        "description": "Technical payment module name"
                                                    },
                                                    "payment_name": {
                                                        "type": "string",
                                                        "description": "Payment display name"
                                                    },
                                                    "payment_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "uri"
                                                    }
                                                }
                                            }
                                        },
                                        "spezial": {
                                            "type": "object",
                                            "description": "Dynamic customer key-value data",
                                            "additionalProperties": {
                                                "type": [
                                                    "string",
                                                    "array",
                                                    "object",
                                                    "null"
                                                ]
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1023,
                                    "location": "https://api.meinshop.de/api/v2/private/customers/1023",
                                    "email": "kontakt@muster-gmbh.de",
                                    "info": "Langj\u00e4hriger Gesch\u00e4ftskunde mit individuellen Preisen.",
                                    "datum": "2023-06-15",
                                    "custgroup_id": 2,
                                    "custgroup_name": "B2B Premiumkunden",
                                    "custgroup_location": "https://api.meinshop.de/api/v2/private/customergroups/2",
                                    "salutation_id": 1,
                                    "salutation": "Herr",
                                    "firstname": "Max",
                                    "lastname": "Muster",
                                    "company": "Muster GmbH",
                                    "addition": "z. Hd. Einkauf",
                                    "street": "Industriestra\u00dfe",
                                    "streetnr": "12A",
                                    "zip": "70173",
                                    "city": "Stuttgart",
                                    "state": "Baden-W\u00fcrttemberg",
                                    "country_id": 55,
                                    "country": "Deutschland",
                                    "country_iso2": "DE",
                                    "country_iso3": "DEU",
                                    "phone": "0711 123456",
                                    "phone_prefix": "+49",
                                    "fax": "0711 987654",
                                    "fax_prefix": "+49",
                                    "mobil": "0151 22334455",
                                    "mobil_prefix": "+49",
                                    "website": "https://www.muster-gmbh.de",
                                    "birthday": "1985-09-20",
                                    "language_id": 1,
                                    "language_location": "https://api.meinshop.de/api/v2/private/languages/1",
                                    "language_name": "Deutsch",
                                    "language_iso2": "de",
                                    "currency_id": 1,
                                    "currency_name": "Euro",
                                    "currency_iso": "EUR",
                                    "has_account": true,
                                    "enabled": true,
                                    "discount": 10,
                                    "vat_number": "DE123456789",
                                    "vat_number_valid": 1,
                                    "agecheck": false,
                                    "statsgroup_id": 0,
                                    "marketing_enabled": true,
                                    "marketing_ip": "127.0.0.1",
                                    "marketing_date": "2023-06-15 12:00:00",
                                    "payments": [
                                        {
                                            "payment_modul": "invoice",
                                            "payment_name": "Kauf auf Rechnung",
                                            "payment_location": "https://localhost/shop/api/v2/private/paymenttypes/1"
                                        },
                                        {
                                            "payment_modul": "paypal",
                                            "payment_name": "PayPal",
                                            "payment_location": "https://localhost/shop/api/v2/private/paymenttypes/1"
                                        },
                                        {
                                            "payment_modul": "creditcard",
                                            "payment_name": "Kreditkarte",
                                            "payment_location": "https://localhost/shop/api/v2/private/paymenttypes/1"
                                        }
                                    ],
                                    "spezial": {
                                        "key1": "Wert1",
                                        "key2": "Wert2",
                                        "custom_note": "Interner Hinweis"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Kunden abrufen.",
                "description": "Liefert Daten zu einem Kunden.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCustomersDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Customer-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "customers.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "customers.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "customers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Kunden aktualisieren.",
                "description": "Aktualisiert die Daten eines Kunden.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutCustomersDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Customer-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "E-Mail-Adresse des Kunden"
                                    },
                                    "info": {
                                        "type": "string",
                                        "description": "Freitext oder Zusatzinformationen zum Kunden"
                                    },
                                    "custgroup_id": {
                                        "type": "integer",
                                        "description": "ID der Kundengruppe"
                                    },
                                    "salutation_id": {
                                        "type": "integer",
                                        "description": "ID der Anrede (z. B. 1=Herr, 2=Frau)"
                                    },
                                    "firstname": {
                                        "type": "string",
                                        "description": "Vorname des Kunden"
                                    },
                                    "lastname": {
                                        "type": "string",
                                        "description": "Nachname des Kunden"
                                    },
                                    "company": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Firmenname (optional)"
                                    },
                                    "addition": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Adresszusatz oder interne Bezeichnung"
                                    },
                                    "street": {
                                        "type": "string",
                                        "description": "Stra\u00dfenname"
                                    },
                                    "streetnr": {
                                        "type": "string",
                                        "description": "Hausnummer"
                                    },
                                    "zip": {
                                        "type": "string",
                                        "description": "Postleitzahl"
                                    },
                                    "city": {
                                        "type": "string",
                                        "description": "Ort oder Stadt"
                                    },
                                    "state": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Bundesland oder Region"
                                    },
                                    "country_id": {
                                        "type": "integer",
                                        "description": "L\u00e4nder-ID (alternativ zu ISO-Codes)"
                                    },
                                    "country_iso2": {
                                        "type": "string",
                                        "description": "Zweistelliger ISO-L\u00e4ndercode (z. B. DE)"
                                    },
                                    "country_iso3": {
                                        "type": "string",
                                        "description": "Dreistelliger ISO-L\u00e4ndercode (z. B. DEU)"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "description": "Telefonnummer"
                                    },
                                    "phone_prefix": {
                                        "type": "string",
                                        "description": "Vorwahl der Telefonnummer"
                                    },
                                    "fax": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Faxnummer (optional)"
                                    },
                                    "fax_prefix": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Fax-Vorwahl (optional)"
                                    },
                                    "mobil": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Mobilnummer"
                                    },
                                    "mobil_prefix": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Mobil-Vorwahl"
                                    },
                                    "website": {
                                        "type": "string",
                                        "format": "uri",
                                        "nullable": true,
                                        "description": "Webseite des Kunden oder Unternehmens"
                                    },
                                    "birthday": {
                                        "type": "string",
                                        "format": "date",
                                        "nullable": true,
                                        "description": "Geburtsdatum des Kunden"
                                    },
                                    "language_id": {
                                        "type": "integer",
                                        "description": "ID der Sprache"
                                    },
                                    "currency_id": {
                                        "type": "integer",
                                        "description": "ID der Waehrung"
                                    },
                                    "has_account": {
                                        "type": "boolean",
                                        "description": "Gibt an, ob der Kunde ein Onlinekonto hat"
                                    },
                                    "enabled": {
                                        "type": "boolean",
                                        "description": "Aktivstatus des Kundenkontos"
                                    },
                                    "discount": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Prozentualer Rabatt des Kunden (z. B. 5.0 f\u00fcr 5%)"
                                    },
                                    "vat_number": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Umsatzsteuer-Identifikationsnummer"
                                    },
                                    "vat_number_valid": {
                                        "type": "integer",
                                        "description": "Status der USt-ID-Pruefung"
                                    },
                                    "agecheck": {
                                        "type": "boolean",
                                        "description": "Gibt an, ob die Alterspruefung aktiv ist"
                                    },
                                    "statsgroup_id": {
                                        "type": "integer",
                                        "description": "ID der Auswertungsgruppe"
                                    },
                                    "marketing_enabled": {
                                        "type": "boolean",
                                        "description": "Marketingeinwilligung des Kunden"
                                    },
                                    "marketing_ip": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "IP-Adresse zur Marketingeinwilligung"
                                    },
                                    "marketing_date": {
                                        "type": "string",
                                        "nullable": true,
                                        "description": "Datum/Uhrzeit der Marketingeinwilligung"
                                    },
                                    "payments": {
                                        "type": "array",
                                        "description": "Liste der aktivierten Zahlungsarten f\u00fcr diesen Kunden",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "payment_modul": {
                                                    "type": "string",
                                                    "description": "Technischer Modulname der Zahlungsart (z. B. 'invoice', 'paypal', 'creditcard')"
                                                }
                                            },
                                            "required": [
                                                "payment_modul"
                                            ]
                                        }
                                    },
                                    "special": {
                                        "type": "object",
                                        "description": "Key-Value-Objekt mit Zusatzdaten oder Metainformationen.",
                                        "additionalProperties": {
                                            "type": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "object",
                                                "array"
                                            ]
                                        },
                                        "example": {
                                            "ref": "API-IMPORT",
                                            "priority": "high"
                                        }
                                    }
                                }
                            },
                            "example": {
                                "email": "max.muster@muster-gmbh.de",
                                "info": "Rechnungsadresse wurde aktualisiert",
                                "custgroup_id": 2,
                                "salutation_id": 1,
                                "firstname": "Max",
                                "lastname": "Muster",
                                "company": "Muster GmbH",
                                "addition": "z. Hd. Buchhaltung",
                                "street": "Industriestra\u00dfe",
                                "streetnr": "15B",
                                "zip": "70173",
                                "city": "Stuttgart",
                                "state": "Baden-W\u00fcrttemberg",
                                "country_iso2": "DE",
                                "phone": "0711 123456",
                                "phone_prefix": "+49",
                                "mobil": "0151 22334455",
                                "mobil_prefix": "+49",
                                "website": "https://www.muster-gmbh.de",
                                "birthday": "1985-09-20",
                                "language_id": 1,
                                "currency_id": 1,
                                "has_account": true,
                                "enabled": true,
                                "discount": 7.5,
                                "vat_number": "DE123456789",
                                "vat_number_valid": 1,
                                "agecheck": false,
                                "statsgroup_id": 0,
                                "marketing_enabled": true,
                                "marketing_ip": "127.0.0.1",
                                "marketing_date": "2023-06-15 12:00:00",
                                "payments": [
                                    {
                                        "payment_modul": "invoice"
                                    },
                                    {
                                        "payment_modul": "paypal"
                                    }
                                ]
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "customers.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "customers.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "customers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Kunden l\u00f6schen.",
                "description": "L\u00f6scht die Daten eines Kunden.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteCustomersDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Customer-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "customers.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "customers.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/customers/search": {
            "get": {
                "tags": [
                    "customers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/paths/~1private~1customers~1{id}/get/responses/200/content/application~1json/schema"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1023,
                                        "location": "https://api.meinshop.de/api/v2/private/customers/1023",
                                        "email": "kontakt@muster-gmbh.de",
                                        "custgroup_id": 2,
                                        "firstname": "Max",
                                        "lastname": "Muster",
                                        "company": "Muster GmbH"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Kunden nach einem String.",
                "description": "Sucht in Kunden nach E-Mail, Name, Firma, PLZ oder Ort.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetCustomersSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    },
                    {
                        "name": "custgroup_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Kundengruppen-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "customers.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "customers.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/customers/{id}/updatedefaultpayments": {
            "post": {
                "tags": [
                    "customers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "F\u00fcgt dem Kunden die Standardzahlarten der Kundengruppe hinzu.",
                "description": "F\u00fcgt dem Kunden die Standardzahlarten der Kundengruppe hinzu.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostCustomersUpdatedefaultpaymentsPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Customer-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "customers.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "customers.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/deliverynotes": {
            "get": {
                "tags": [
                    "deliverynotes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/deliverynotes/1"
                                                    },
                                                    "order_id": {
                                                        "type": "integer",
                                                        "example": 123
                                                    },
                                                    "date": {
                                                        "type": "string",
                                                        "example": "2026-06-12"
                                                    },
                                                    "hour": {
                                                        "type": "integer",
                                                        "example": 12
                                                    },
                                                    "minute": {
                                                        "type": "integer",
                                                        "example": 30
                                                    },
                                                    "timestamp": {
                                                        "type": "integer",
                                                        "example": 1781267400
                                                    },
                                                    "datetime": {
                                                        "type": "string",
                                                        "example": "2026-06-12 12:30:00"
                                                    },
                                                    "carrier": {
                                                        "type": "string",
                                                        "example": "DHL"
                                                    },
                                                    "shipping_method": {
                                                        "type": "string",
                                                        "example": "Paket"
                                                    },
                                                    "tracking_number": {
                                                        "type": "string",
                                                        "example": "00340434123456789012"
                                                    },
                                                    "order_number": {
                                                        "type": "string",
                                                        "example": "100001"
                                                    },
                                                    "customer_name": {
                                                        "type": "string",
                                                        "example": "Max Mustermann"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/deliverynotes/1",
                                            "order_id": 123,
                                            "date": "2026-06-12",
                                            "hour": 12,
                                            "minute": 30,
                                            "timestamp": 1781267400,
                                            "datetime": "2026-06-12 12:30:00",
                                            "carrier": "DHL",
                                            "shipping_method": "Paket",
                                            "tracking_number": "00340434123456789012",
                                            "order_number": "100001",
                                            "customer_name": "Max Mustermann"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Deliverynotes abrufen.",
                "description": "Liefert eine paginierte Liste fuer Deliverynotes.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetDeliverynotesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/deliverynotes/{id}": {
            "get": {
                "tags": [
                    "deliverynotes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/deliverynotes/1"
                                                },
                                                "order_id": {
                                                    "type": "integer",
                                                    "example": 123
                                                },
                                                "date": {
                                                    "type": "string",
                                                    "example": "2026-06-12"
                                                },
                                                "hour": {
                                                    "type": "integer",
                                                    "example": 12
                                                },
                                                "minute": {
                                                    "type": "integer",
                                                    "example": 30
                                                },
                                                "timestamp": {
                                                    "type": "integer",
                                                    "example": 1781267400
                                                },
                                                "datetime": {
                                                    "type": "string",
                                                    "example": "2026-06-12 12:30:00"
                                                },
                                                "carrier": {
                                                    "type": "string",
                                                    "example": "DHL"
                                                },
                                                "shipping_method": {
                                                    "type": "string",
                                                    "example": "Paket"
                                                },
                                                "tracking_number": {
                                                    "type": "string",
                                                    "example": "00340434123456789012"
                                                },
                                                "note": {
                                                    "type": "string",
                                                    "example": "Bitte priorisiert versenden"
                                                },
                                                "special": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "order_number": {
                                                    "type": "string",
                                                    "example": "100001"
                                                },
                                                "customer_name": {
                                                    "type": "string",
                                                    "example": "Max Mustermann"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/deliverynotes/1",
                                        "order_id": 123,
                                        "date": "2026-06-12",
                                        "hour": 12,
                                        "minute": 30,
                                        "timestamp": 1781267400,
                                        "datetime": "2026-06-12 12:30:00",
                                        "carrier": "DHL",
                                        "shipping_method": "Paket",
                                        "tracking_number": "00340434123456789012",
                                        "note": "Bitte priorisiert versenden",
                                        "special": "",
                                        "order_number": "100001",
                                        "customer_name": "Max Mustermann"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Deliverynotes Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Deliverynotes.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetDeliverynotesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/deliverynotes/search": {
            "get": {
                "tags": [
                    "deliverynotes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/definitions/deliverynote"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    },
                                    "definitions": {
                                        "deliverynote": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/deliverynotes/1"
                                                },
                                                "order_id": {
                                                    "type": "integer",
                                                    "example": 123
                                                },
                                                "date": {
                                                    "type": "string",
                                                    "example": "2026-06-12"
                                                },
                                                "carrier": {
                                                    "type": "string",
                                                    "example": "DHL"
                                                },
                                                "shipping_method": {
                                                    "type": "string",
                                                    "example": "Paket"
                                                },
                                                "tracking_number": {
                                                    "type": "string",
                                                    "example": "00340434123456789012"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/deliverynotes/1",
                                            "order_id": 123,
                                            "date": "2026-06-12",
                                            "hour": 12,
                                            "minute": 30,
                                            "timestamp": 1781267400,
                                            "datetime": "2026-06-12 12:30:00",
                                            "carrier": "DHL",
                                            "shipping_method": "Paket",
                                            "tracking_number": "00340434123456789012"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Deliverynotes suchen.",
                "description": "Sucht Datensaetze fuer Deliverynotes anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetDeliverynotesSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/depots": {
            "get": {
                "tags": [
                    "depots"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Antwort auf GET /private/depots - Lager",
                                    "items": {
                                        "$ref": "get_depot.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://example.com/api/v2/private/depots/1",
                                        "name": "Hauptlager",
                                        "short_name": "HL"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Lager abrufen.",
                "description": "Liefert Daten fuer mehrere Lager.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetDepotsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "include_deleted",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden geloeschte Lager mit zurueckgegeben"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "depots.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "depots.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "depots"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Lager erstellen.",
                "description": "Erstellt ein Lager.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostDepotsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Request-Body fuer POST /private/depots",
                                "required": [
                                    "name",
                                    "short_name"
                                ],
                                "properties": {
                                    "enabled": {
                                        "type": "boolean",
                                        "description": "Gibt an, ob das Lager aktiv ist"
                                    },
                                    "type_id": {
                                        "type": "integer",
                                        "description": "Lager-Typ-ID"
                                    },
                                    "exclude_stock": {
                                        "type": "boolean",
                                        "description": "Gibt an, ob das Lager aus der Produktbestandsberechnung ausgeschlossen ist"
                                    },
                                    "name": {
                                        "type": "string",
                                        "description": "Bezeichnung"
                                    },
                                    "short_name": {
                                        "type": "string",
                                        "description": "Kuerzel"
                                    },
                                    "address": {
                                        "type": "string",
                                        "description": "Anschrift"
                                    },
                                    "shipping_priority": {
                                        "type": "integer",
                                        "description": "Prioritaet fuer Versand von Onlinebestellungen"
                                    },
                                    "cash_priority": {
                                        "type": "integer",
                                        "description": "Prioritaet fuer Versand von Ladenverkaeufen"
                                    }
                                }
                            },
                            "example": {
                                "enabled": true,
                                "type_id": 1,
                                "exclude_stock": false,
                                "name": "Hauptlager",
                                "short_name": "HL",
                                "address": "Musterstrasse 1, 12345 Musterstadt"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "depots.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "depots.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/depots/{id}": {
            "get": {
                "tags": [
                    "depots"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Antwort auf GET /private/depots/{id} - Lager",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Eindeutige Lager-ID"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API-Link zum Lager"
                                        },
                                        "enabled": {
                                            "type": "boolean",
                                            "description": "Gibt an, ob das Lager aktiv ist"
                                        },
                                        "type_id": {
                                            "type": "integer",
                                            "description": "Lager-Typ-ID"
                                        },
                                        "type_name": {
                                            "type": "string",
                                            "description": "Bezeichnung des Lager-Typs"
                                        },
                                        "exclude_stock": {
                                            "type": "boolean",
                                            "description": "Gibt an, ob das Lager aus der Produktbestandsberechnung ausgeschlossen ist"
                                        },
                                        "name": {
                                            "type": "string",
                                            "description": "Bezeichnung"
                                        },
                                        "short_name": {
                                            "type": "string",
                                            "description": "Kuerzel"
                                        },
                                        "address": {
                                            "type": "string",
                                            "description": "Anschrift"
                                        },
                                        "shipping_priority": {
                                            "type": "integer",
                                            "description": "Prioritaet fuer Versand von Onlinebestellungen"
                                        },
                                        "cash_priority": {
                                            "type": "integer",
                                            "description": "Prioritaet fuer Versand von Ladenverkaeufen"
                                        },
                                        "deleted": {
                                            "type": "boolean",
                                            "description": "Gibt an, ob das Lager geloescht wurde"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://example.com/api/v2/private/depots/1",
                                    "enabled": true,
                                    "type_id": 1,
                                    "type_name": "Vertrieb",
                                    "exclude_stock": false,
                                    "name": "Hauptlager",
                                    "short_name": "HL",
                                    "address": "Musterstrasse 1, 12345 Musterstadt",
                                    "shipping_priority": 10,
                                    "cash_priority": 10,
                                    "deleted": false
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Lagers abrufen.",
                "description": "Liefert Daten zu einem Lager.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetDepotsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Lager-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "depots.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "depots.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "depots"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Lagers aktualisieren.",
                "description": "Aktualisiert die Daten eines Lagers.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutDepotsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Lager-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Request-Body fuer PUT /private/depots/{id}",
                                "properties": {
                                    "enabled": {
                                        "type": "boolean",
                                        "description": "Gibt an, ob das Lager aktiv ist"
                                    },
                                    "type_id": {
                                        "type": "integer",
                                        "description": "Lager-Typ-ID"
                                    },
                                    "exclude_stock": {
                                        "type": "boolean",
                                        "description": "Gibt an, ob das Lager aus der Produktbestandsberechnung ausgeschlossen ist"
                                    },
                                    "name": {
                                        "type": "string",
                                        "description": "Bezeichnung"
                                    },
                                    "short_name": {
                                        "type": "string",
                                        "description": "Kuerzel"
                                    },
                                    "address": {
                                        "type": "string",
                                        "description": "Anschrift"
                                    },
                                    "shipping_priority": {
                                        "type": "integer",
                                        "description": "Prioritaet fuer Versand von Onlinebestellungen"
                                    },
                                    "cash_priority": {
                                        "type": "integer",
                                        "description": "Prioritaet fuer Versand von Ladenverkaeufen"
                                    }
                                }
                            },
                            "example": {
                                "name": "Hauptlager",
                                "short_name": "HL",
                                "exclude_stock": false
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "depots.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "depots.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "depots"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Ein Lager loeschen.",
                "description": "Loescht ein Lager weich. Zugeordnete Lagerbestaende werden entfernt und der Produktbestand wird neu berechnet.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteDepotsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Lager-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "depots.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "depots.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/depots/search": {
            "get": {
                "tags": [
                    "depots"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Antwort auf GET /private/depots/search - Suchergebnis fuer Lager",
                                    "items": {
                                        "$ref": "get_depot.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://example.com/api/v2/private/depots/1",
                                        "enabled": true,
                                        "type_id": 1,
                                        "type_name": "Vertrieb",
                                        "exclude_stock": false,
                                        "name": "Hauptlager",
                                        "short_name": "HL",
                                        "address": "Musterstrasse 1, 12345 Musterstadt",
                                        "shipping_priority": 10,
                                        "cash_priority": 10,
                                        "deleted": false
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Lagern nach einem String.",
                "description": "Sucht in Lagern nach Bezeichnung, Kuerzel oder Anschrift.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetDepotsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    },
                    {
                        "name": "include_deleted",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden geloeschte Lager mit durchsucht"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "depots.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "depots.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/discountgroupcustomergroups": {
            "get": {
                "tags": [
                    "discountgroupcustomergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_discountgroupcustomergroups_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "1:2",
                                            "location": "https://localhost/shop/api/v2/private/discountgroupcustomergroups/1?customer_group_id=2",
                                            "discount_group_id": 1,
                                            "customer_group_id": 2,
                                            "discount_percent": 10.5
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Discountgroupcustomergroups abrufen.",
                "description": "Liefert eine paginierte Liste fuer Discountgroupcustomergroups.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetDiscountgroupcustomergroupsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "discountgroupcustomergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "get_discountgroupcustomergroups_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "discount_group_id": 1,
                                    "customer_group_id": 2,
                                    "discount_percent": 10.5
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Discountgroupcustomergroups anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Discountgroupcustomergroups.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostDiscountgroupcustomergroupsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "discount_group_id",
                                    "customer_group_id",
                                    "discount_percent"
                                ],
                                "properties": {
                                    "discount_group_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "customer_group_id": {
                                        "type": "integer",
                                        "example": 2
                                    },
                                    "discount_percent": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 10.5
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/discountgroupcustomergroups/{id}": {
            "get": {
                "tags": [
                    "discountgroupcustomergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "get_discountgroupcustomergroups_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": "1:2",
                                        "location": "https://localhost/shop/api/v2/private/discountgroupcustomergroups/1?customer_group_id=2",
                                        "discount_group_id": 1,
                                        "customer_group_id": 2,
                                        "discount_percent": 10.5,
                                        "discount_group_location": "https://localhost/shop/api/v2/private/discountgroups/1",
                                        "discount_group_name": "Retail discount",
                                        "customer_group_location": "https://localhost/shop/api/v2/private/customergroups/2",
                                        "customer_group_name": "Dealer"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Discountgroupcustomergroups Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Discountgroupcustomergroups.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetDiscountgroupcustomergroupsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "discountgroupcustomergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "get_discountgroupcustomergroups_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "discount_group_id": 1,
                                    "customer_group_id": 2,
                                    "discount_percent": 10.5
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Discountgroupcustomergroups aktualisieren.",
                "description": "Schreibt die uebergebenen Felder fuer Discountgroupcustomergroups.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutDiscountgroupcustomergroupsDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "discount_group_id",
                                    "customer_group_id",
                                    "discount_percent"
                                ],
                                "properties": {
                                    "discount_group_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "customer_group_id": {
                                        "type": "integer",
                                        "example": 2
                                    },
                                    "discount_percent": {
                                        "type": "number",
                                        "format": "float",
                                        "example": 10.5
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "discountgroupcustomergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Discountgroupcustomergroups loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Discountgroupcustomergroups.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteDiscountgroupcustomergroupsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/discountgroupcustomergroups/search": {
            "get": {
                "tags": [
                    "discountgroupcustomergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_discountgroupcustomergroups_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "1:2",
                                            "location": "https://localhost/shop/api/v2/private/discountgroupcustomergroups/1?customer_group_id=2",
                                            "discount_group_id": 1,
                                            "customer_group_id": 2,
                                            "discount_percent": 10.5
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Discountgroupcustomergroups suchen.",
                "description": "Sucht Datensaetze fuer Discountgroupcustomergroups anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetDiscountgroupcustomergroupsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/discountgroups": {
            "get": {
                "tags": [
                    "discountgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "get_discountgroup"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/discountgroups/1",
                                        "name": "Standard discount group"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Rabattgruppen abrufen.",
                "description": "Liefert Daten fuer mehrere Rabattgruppen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetDiscountgroupsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                }
                            }
                        },
                        "description": "Filtert nach Bezeichnung"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "discountgroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "discountgroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "discountgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Rabattgruppe erstellen.",
                "description": "Erstellt eine Rabattgruppe.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostDiscountgroupsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Discount group name"
                                    }
                                }
                            },
                            "example": {
                                "name": "Standard discount group"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "discountgroups.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "discountgroups.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/discountgroups/{id}": {
            "get": {
                "tags": [
                    "discountgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Unique discount group id"
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API resource location"
                                        },
                                        "name": {
                                            "type": "string",
                                            "description": "Discount group name"
                                        },
                                        "customer_group_discounts": {
                                            "type": "array",
                                            "description": "Discount values assigned per customer group",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "customer_group_id": {
                                                        "type": "integer",
                                                        "description": "Customer group id"
                                                    },
                                                    "customer_group_name": {
                                                        "type": "string",
                                                        "description": "Customer group name"
                                                    },
                                                    "customer_group_location": {
                                                        "type": "string",
                                                        "description": "Customer group API resource location"
                                                    },
                                                    "discount_percent": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "description": "Discount percentage"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/discountgroups/1",
                                    "name": "Standard discount group",
                                    "customer_group_discounts": [
                                        {
                                            "customer_group_id": 1,
                                            "customer_group_name": "Endkunde",
                                            "customer_group_location": "https://localhost/shop/api/v2/private/customergroups/1",
                                            "discount_percent": 5
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Rabattgruppe abrufen.",
                "description": "Liefert Daten zu einer Rabattgruppe.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetDiscountgroupsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Rabattgruppen-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "discountgroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "discountgroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "discountgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Rabattgruppe aktualisieren.",
                "description": "Aktualisiert eine Rabattgruppe.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutDiscountgroupsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Rabattgruppen-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Discount group name"
                                    }
                                }
                            },
                            "example": {
                                "name": "Standard discount group"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "discountgroups.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "discountgroups.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "discountgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Rabattgruppe loeschen.",
                "description": "Loescht eine Rabattgruppe und entfernt Kundengruppen-Zuordnungen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteDiscountgroupsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Rabattgruppen-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "discountgroups.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "discountgroups.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/discountgroups/search": {
            "get": {
                "tags": [
                    "discountgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "get_discountgroup"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/discountgroups/1",
                                        "name": "Standard discount group",
                                        "customer_group_discounts": [
                                            {
                                                "customer_group_id": 1,
                                                "customer_group_name": "Endkunde",
                                                "customer_group_location": "https://localhost/shop/api/v2/private/customergroups/1",
                                                "discount_percent": 5
                                            }
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Rabattgruppen nach einem String.",
                "description": "Sucht in Rabattgruppen nach Bezeichnung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetDiscountgroupsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "discountgroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "discountgroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/dropshippers": {
            "get": {
                "tags": [
                    "dropshippers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/dropshippers/1"
                                                    },
                                                    "company": {
                                                        "type": "string",
                                                        "example": "Example Dropshipping GmbH"
                                                    },
                                                    "first_name": {
                                                        "type": "string",
                                                        "example": "Max"
                                                    },
                                                    "last_name": {
                                                        "type": "string",
                                                        "example": "Mustermann"
                                                    },
                                                    "email": {
                                                        "type": "string",
                                                        "example": "dropshipper@example.org"
                                                    },
                                                    "city": {
                                                        "type": "string",
                                                        "example": "Musterstadt"
                                                    },
                                                    "country_id": {
                                                        "type": "integer",
                                                        "example": 81
                                                    },
                                                    "icon": {
                                                        "type": "string",
                                                        "example": "ds_icon.png"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/dropshippers/1",
                                            "company": "Example Dropshipping GmbH",
                                            "first_name": "Max",
                                            "last_name": "Mustermann",
                                            "email": "dropshipper@example.org",
                                            "city": "Musterstadt",
                                            "country_id": 81,
                                            "icon": "ds_icon.png"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Dropshippers abrufen.",
                "description": "Liefert eine paginierte Liste fuer Dropshippers.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetDropshippersPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "dropshippers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/dropshippers/1"
                                                },
                                                "company": {
                                                    "type": "string",
                                                    "example": "Example Dropshipping GmbH"
                                                },
                                                "first_name": {
                                                    "type": "string",
                                                    "example": "Max"
                                                },
                                                "last_name": {
                                                    "type": "string",
                                                    "example": "Mustermann"
                                                },
                                                "email": {
                                                    "type": "string",
                                                    "example": "dropshipper@example.org"
                                                },
                                                "city": {
                                                    "type": "string",
                                                    "example": "Musterstadt"
                                                },
                                                "country_id": {
                                                    "type": "integer",
                                                    "example": 81
                                                },
                                                "additional": {
                                                    "type": "string",
                                                    "example": "Lager 2"
                                                },
                                                "street": {
                                                    "type": "string",
                                                    "example": "Musterstrasse"
                                                },
                                                "house_number": {
                                                    "type": "string",
                                                    "example": "12"
                                                },
                                                "postal_code": {
                                                    "type": "string",
                                                    "example": "01234"
                                                },
                                                "phone_prefix": {
                                                    "type": "string",
                                                    "example": "+49"
                                                },
                                                "phone": {
                                                    "type": "string",
                                                    "example": "123456"
                                                },
                                                "icon": {
                                                    "type": "string",
                                                    "example": "ds_icon.png"
                                                },
                                                "icon_url": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/images/icons/ds_icon.png"
                                                },
                                                "override_shipping_data": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "country_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/countries/81"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "email": "support@example.com",
                                    "override_shipping_sender": false
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Dropshippers anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Dropshippers.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostDropshippersPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "company"
                                ],
                                "properties": {
                                    "company": {
                                        "type": "string",
                                        "example": "Example Dropshipping GmbH"
                                    },
                                    "first_name": {
                                        "type": "string",
                                        "example": "Max"
                                    },
                                    "last_name": {
                                        "type": "string",
                                        "example": "Mustermann"
                                    },
                                    "additional": {
                                        "type": "string",
                                        "example": "Lager 2"
                                    },
                                    "street": {
                                        "type": "string",
                                        "example": "Musterstrasse"
                                    },
                                    "house_number": {
                                        "type": "string",
                                        "example": "12"
                                    },
                                    "postal_code": {
                                        "type": "string",
                                        "example": "01234"
                                    },
                                    "city": {
                                        "type": "string",
                                        "example": "Musterstadt"
                                    },
                                    "country_id": {
                                        "type": "integer",
                                        "example": 81
                                    },
                                    "phone_prefix": {
                                        "type": "string",
                                        "example": "+49"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "123456"
                                    },
                                    "email": {
                                        "type": "string",
                                        "example": "dropshipper@example.org"
                                    },
                                    "icon": {
                                        "type": "string",
                                        "example": "ds_icon.png"
                                    },
                                    "override_shipping_data": {
                                        "type": "boolean",
                                        "example": true
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/dropshippers/{id}": {
            "get": {
                "tags": [
                    "dropshippers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/dropshippers/1"
                                                },
                                                "company": {
                                                    "type": "string",
                                                    "example": "Example Dropshipping GmbH"
                                                },
                                                "first_name": {
                                                    "type": "string",
                                                    "example": "Max"
                                                },
                                                "last_name": {
                                                    "type": "string",
                                                    "example": "Mustermann"
                                                },
                                                "email": {
                                                    "type": "string",
                                                    "example": "dropshipper@example.org"
                                                },
                                                "city": {
                                                    "type": "string",
                                                    "example": "Musterstadt"
                                                },
                                                "country_id": {
                                                    "type": "integer",
                                                    "example": 81
                                                },
                                                "additional": {
                                                    "type": "string",
                                                    "example": "Lager 2"
                                                },
                                                "street": {
                                                    "type": "string",
                                                    "example": "Musterstrasse"
                                                },
                                                "house_number": {
                                                    "type": "string",
                                                    "example": "12"
                                                },
                                                "postal_code": {
                                                    "type": "string",
                                                    "example": "01234"
                                                },
                                                "phone_prefix": {
                                                    "type": "string",
                                                    "example": "+49"
                                                },
                                                "phone": {
                                                    "type": "string",
                                                    "example": "123456"
                                                },
                                                "icon": {
                                                    "type": "string",
                                                    "example": "ds_icon.png"
                                                },
                                                "icon_url": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/images/icons/ds_icon.png"
                                                },
                                                "override_shipping_data": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "country_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/countries/81"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/dropshippers/1",
                                        "company": "Example Dropshipping GmbH",
                                        "first_name": "Max",
                                        "last_name": "Mustermann",
                                        "email": "dropshipper@example.org",
                                        "city": "Musterstadt",
                                        "country_id": 81,
                                        "additional": "Lager 2",
                                        "street": "Musterstrasse",
                                        "house_number": "12",
                                        "postal_code": "01234",
                                        "phone_prefix": "+49",
                                        "phone": "123456",
                                        "icon": "ds_icon.png",
                                        "icon_url": "https://localhost/shop/images/icons/ds_icon.png",
                                        "override_shipping_data": true,
                                        "country_location": "https://localhost/shop/api/v2/private/countries/81"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Dropshippers Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Dropshippers.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetDropshippersDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "dropshippers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/dropshippers/1"
                                                },
                                                "company": {
                                                    "type": "string",
                                                    "example": "Example Dropshipping GmbH"
                                                },
                                                "first_name": {
                                                    "type": "string",
                                                    "example": "Max"
                                                },
                                                "last_name": {
                                                    "type": "string",
                                                    "example": "Mustermann"
                                                },
                                                "email": {
                                                    "type": "string",
                                                    "example": "dropshipper@example.org"
                                                },
                                                "city": {
                                                    "type": "string",
                                                    "example": "Musterstadt"
                                                },
                                                "country_id": {
                                                    "type": "integer",
                                                    "example": 81
                                                },
                                                "additional": {
                                                    "type": "string",
                                                    "example": "Lager 2"
                                                },
                                                "street": {
                                                    "type": "string",
                                                    "example": "Musterstrasse"
                                                },
                                                "house_number": {
                                                    "type": "string",
                                                    "example": "12"
                                                },
                                                "postal_code": {
                                                    "type": "string",
                                                    "example": "01234"
                                                },
                                                "phone_prefix": {
                                                    "type": "string",
                                                    "example": "+49"
                                                },
                                                "phone": {
                                                    "type": "string",
                                                    "example": "123456"
                                                },
                                                "icon": {
                                                    "type": "string",
                                                    "example": "ds_icon.png"
                                                },
                                                "icon_url": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/images/icons/ds_icon.png"
                                                },
                                                "override_shipping_data": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "country_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/countries/81"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "email": "support@example.com",
                                    "override_shipping_sender": false
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Dropshippers aktualisieren.",
                "description": "Schreibt die uebergebenen Felder fuer Dropshippers.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutDropshippersDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "company"
                                ],
                                "properties": {
                                    "company": {
                                        "type": "string",
                                        "example": "Example Dropshipping GmbH"
                                    },
                                    "first_name": {
                                        "type": "string",
                                        "example": "Max"
                                    },
                                    "last_name": {
                                        "type": "string",
                                        "example": "Mustermann"
                                    },
                                    "additional": {
                                        "type": "string",
                                        "example": "Lager 2"
                                    },
                                    "street": {
                                        "type": "string",
                                        "example": "Musterstrasse"
                                    },
                                    "house_number": {
                                        "type": "string",
                                        "example": "12"
                                    },
                                    "postal_code": {
                                        "type": "string",
                                        "example": "01234"
                                    },
                                    "city": {
                                        "type": "string",
                                        "example": "Musterstadt"
                                    },
                                    "country_id": {
                                        "type": "integer",
                                        "example": 81
                                    },
                                    "phone_prefix": {
                                        "type": "string",
                                        "example": "+49"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "example": "123456"
                                    },
                                    "email": {
                                        "type": "string",
                                        "example": "dropshipper@example.org"
                                    },
                                    "icon": {
                                        "type": "string",
                                        "example": "ds_icon.png"
                                    },
                                    "override_shipping_data": {
                                        "type": "boolean",
                                        "example": true
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "dropshippers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Dropshippers loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Dropshippers.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteDropshippersDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/dropshippers/search": {
            "get": {
                "tags": [
                    "dropshippers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/dropshippers/1"
                                                    },
                                                    "company": {
                                                        "type": "string",
                                                        "example": "Example Dropshipping GmbH"
                                                    },
                                                    "first_name": {
                                                        "type": "string",
                                                        "example": "Max"
                                                    },
                                                    "last_name": {
                                                        "type": "string",
                                                        "example": "Mustermann"
                                                    },
                                                    "email": {
                                                        "type": "string",
                                                        "example": "dropshipper@example.org"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/dropshippers/1",
                                            "company": "Example Dropshipping GmbH",
                                            "first_name": "Max",
                                            "last_name": "Mustermann",
                                            "email": "dropshipper@example.org"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Dropshippers suchen.",
                "description": "Sucht Datensaetze fuer Dropshippers anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetDropshippersSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/emailblacklist": {
            "get": {
                "tags": [
                    "emailblacklist"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "v2/docs/returns/Emailblacklist/get_emailblacklist_entry.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/emailblacklist/1",
                                        "email": "blocked@example.com",
                                        "created_at": "2026-06-11 10:30:00"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere E-Mail-Blacklist-Eintraege abrufen.",
                "description": "Liefert Daten fuer mehrere E-Mail-Blacklist-Eintraege.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetEmailblacklistPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "email": {
                                    "type": "string"
                                },
                                "date_from": {
                                    "type": "string"
                                },
                                "date_to": {
                                    "type": "string"
                                }
                            }
                        },
                        "description": "Filtert nach E-Mail-Adresse oder Datum"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "emailblacklist.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "emailblacklist.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "emailblacklist"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "E-Mail-Blacklist-Eintrag erstellen.",
                "description": "Erstellt einen E-Mail-Blacklist-Eintrag.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostEmailblacklistPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "email"
                                ],
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "E-Mail-Adresse",
                                        "example": "blocked@example.com"
                                    }
                                }
                            },
                            "example": {
                                "email": "blocked@example.com"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "emailblacklist.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "emailblacklist.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/emailblacklist/{id}": {
            "get": {
                "tags": [
                    "emailblacklist"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": 1
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Object",
                                            "example": "https://localhost/shop/api/v2/private/emailblacklist/1"
                                        },
                                        "email": {
                                            "type": "string",
                                            "format": "email",
                                            "description": "E-Mail-Adresse",
                                            "example": "blocked@example.com"
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "description": "Erstelldatum des Blacklist-Eintrags",
                                            "example": "2026-06-11 10:30:00"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/emailblacklist/1",
                                    "email": "blocked@example.com",
                                    "created_at": "2026-06-11 10:30:00"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines E-Mail-Blacklist-Eintrags abrufen.",
                "description": "Liefert Daten zu einem E-Mail-Blacklist-Eintrag.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetEmailblacklistDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "E-Mail-Blacklist-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "emailblacklist.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "emailblacklist.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "emailblacklist"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "E-Mail-Blacklist-Eintrag aktualisieren.",
                "description": "Aktualisiert einen E-Mail-Blacklist-Eintrag.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutEmailblacklistDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "E-Mail-Blacklist-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "E-Mail-Adresse",
                                        "example": "blocked@example.com"
                                    }
                                }
                            },
                            "example": {
                                "email": "changed@example.com"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "emailblacklist.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "emailblacklist.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "emailblacklist"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "E-Mail-Blacklist-Eintrag loeschen.",
                "description": "Loescht einen E-Mail-Blacklist-Eintrag.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteEmailblacklistDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "E-Mail-Blacklist-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "emailblacklist.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "emailblacklist.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/emailblacklist/search": {
            "get": {
                "tags": [
                    "emailblacklist"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "v2/docs/returns/Emailblacklist/get_emailblacklist_entry.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/emailblacklist/1",
                                        "email": "blocked@example.com",
                                        "created_at": "2026-06-11 10:30:00"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in E-Mail-Blacklist-Eintraegen nach einem String.",
                "description": "Sucht in E-Mail-Blacklist-Eintraegen nach E-Mail-Adresse.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetEmailblacklistSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "emailblacklist.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "emailblacklist.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/emailtemplates": {
            "get": {
                "tags": [
                    "emailtemplates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "v2/docs/returns/Emailtemplates/get_emailtemplates_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://example.org/api/v2/private/emailtemplates/1",
                                            "name": "bestellbestaetigung_text",
                                            "subject": "Bestellbestaetigung",
                                            "multishop_id": 1,
                                            "lang_id": 1,
                                            "art": ""
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Emailtemplates abrufen.",
                "description": "Liefert eine paginierte Liste fuer Emailtemplates.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetEmailtemplatesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/emailtemplates/{id}": {
            "get": {
                "tags": [
                    "emailtemplates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "v2/docs/returns/Emailtemplates/get_emailtemplates_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "location": "https://example.org/api/v2/private/emailtemplates/1",
                                        "name": "bestellbestaetigung_text",
                                        "subject": "Bestellbestaetigung",
                                        "multishop_id": 1,
                                        "lang_id": 1,
                                        "art": "",
                                        "sender_name": "",
                                        "sender_email": "",
                                        "reply_to": "",
                                        "bcc_emails": "",
                                        "add_invoice": false,
                                        "additional_template_id": 0,
                                        "file_attach1": "",
                                        "file_attach2": "",
                                        "active": false,
                                        "content_html": "<p>Hallo {NAME}</p>",
                                        "content_text": "Hallo {NAME}",
                                        "content_detail_html": "",
                                        "content_detail_text": "",
                                        "multishop_location": "https://example.org/api/v2/private/multishops/1",
                                        "language_location": "https://example.org/api/v2/private/languages/1"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Emailtemplates Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Emailtemplates.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetEmailtemplatesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "emailtemplates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "v2/docs/returns/Emailtemplates/get_emailtemplates_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "subject": "Bestellbestaetigung",
                                    "content_html": "<p>Hallo {NAME}</p>",
                                    "content_text": "Hallo {NAME}",
                                    "sender_name": "Shop Team",
                                    "sender_email": "shop@example.org",
                                    "reply_to": "support@example.org",
                                    "bcc_emails": "archive@example.org"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Emailtemplates aktualisieren.",
                "description": "Schreibt die uebergebenen Felder fuer Emailtemplates.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutEmailtemplatesDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "subject": {
                                        "type": "string"
                                    },
                                    "content_html": {
                                        "type": "string"
                                    },
                                    "content_text": {
                                        "type": "string"
                                    },
                                    "content_detail_html": {
                                        "type": "string"
                                    },
                                    "content_detail_text": {
                                        "type": "string"
                                    },
                                    "sender_name": {
                                        "type": "string"
                                    },
                                    "sender_email": {
                                        "type": "string"
                                    },
                                    "reply_to": {
                                        "type": "string"
                                    },
                                    "bcc_emails": {
                                        "type": "string"
                                    },
                                    "add_invoice": {
                                        "type": "boolean"
                                    },
                                    "additional_template_id": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/emailtemplates/search": {
            "get": {
                "tags": [
                    "emailtemplates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "v2/docs/returns/Emailtemplates/get_emailtemplates_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://example.org/api/v2/private/emailtemplates/1",
                                            "name": "bestellbestaetigung_text",
                                            "subject": "Bestellbestaetigung",
                                            "multishop_id": 1,
                                            "lang_id": 1,
                                            "art": ""
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Emailtemplates suchen.",
                "description": "Sucht Datensaetze fuer Emailtemplates anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetEmailtemplatesSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/faq": {
            "get": {
                "tags": [
                    "faq"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "description": "Id des Objects",
                                                "example": 1
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri",
                                                "description": "API Url zum Object",
                                                "example": "https://localhost/shop/api/v2/private/faq/1"
                                            },
                                            "question": {
                                                "type": "string",
                                                "description": "FAQ-Frage",
                                                "example": "Wie lange dauert der Versand?"
                                            },
                                            "multishop_id": {
                                                "type": "integer",
                                                "description": "Id des Multishops",
                                                "example": 1
                                            },
                                            "sort_order": {
                                                "type": "integer",
                                                "description": "Sortierung des FAQ-Eintrags",
                                                "example": 10
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/faq/1",
                                        "question": "Wie lange dauert der Versand?",
                                        "multishop_id": 1,
                                        "sort_order": 10
                                    },
                                    {
                                        "id": 2,
                                        "location": "https://localhost/shop/api/v2/private/faq/2",
                                        "question": "Kann ich meine Bestellung abholen?",
                                        "multishop_id": 1,
                                        "sort_order": 20
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere FAQ-Eintraege abrufen.",
                "description": "Liefert Daten fuer mehrere FAQ-Eintraege.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetFaqPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "question": {
                                    "type": "string"
                                },
                                "answer": {
                                    "type": "string"
                                },
                                "multishop_id": {
                                    "type": "integer"
                                }
                            }
                        },
                        "description": "Filtert nach Frage, Antwort oder Multishop"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "faq.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "faq.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "faq"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "FAQ-Eintrag erstellen.",
                "description": "Erstellt einen FAQ-Eintrag.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostFaqPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "question"
                                ],
                                "properties": {
                                    "question": {
                                        "type": "string",
                                        "description": "FAQ-Frage",
                                        "example": "Wie lange dauert der Versand?"
                                    },
                                    "answer": {
                                        "type": "string",
                                        "description": "FAQ-Antwort",
                                        "example": "Der Versand dauert in der Regel 1 bis 3 Werktage."
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Id des Multishops",
                                        "example": 1
                                    },
                                    "sort_order": {
                                        "type": "integer",
                                        "description": "Sortierung des FAQ-Eintrags",
                                        "example": 10
                                    }
                                }
                            },
                            "example": {
                                "question": "Wie lange dauert der Versand?",
                                "answer": "Der Versand dauert in der Regel 1 bis 3 Werktage.",
                                "multishop_id": 1,
                                "sort_order": 10
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "faq.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "faq.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/faq/{id}": {
            "get": {
                "tags": [
                    "faq"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": 1
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Object",
                                            "example": "https://localhost/shop/api/v2/private/faq/1"
                                        },
                                        "question": {
                                            "type": "string",
                                            "description": "FAQ-Frage",
                                            "example": "Wie lange dauert der Versand?"
                                        },
                                        "answer": {
                                            "type": "string",
                                            "description": "FAQ-Antwort",
                                            "example": "Der Versand dauert in der Regel 1 bis 3 Werktage."
                                        },
                                        "multishop_id": {
                                            "type": "integer",
                                            "description": "Id des Multishops",
                                            "example": 1
                                        },
                                        "sort_order": {
                                            "type": "integer",
                                            "description": "Sortierung des FAQ-Eintrags",
                                            "example": 10
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/faq/1",
                                    "question": "Wie lange dauert der Versand?",
                                    "answer": "Der Versand dauert in der Regel 1 bis 3 Werktage.",
                                    "multishop_id": 1,
                                    "sort_order": 10
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines FAQ-Eintrags abrufen.",
                "description": "Liefert Daten zu einem FAQ-Eintrag.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetFaqDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "FAQ-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "faq.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "faq.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "faq"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "FAQ-Eintrag aktualisieren.",
                "description": "Aktualisiert einen FAQ-Eintrag.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutFaqDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "FAQ-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "question": {
                                        "type": "string",
                                        "description": "FAQ-Frage",
                                        "example": "Wie lange dauert der Versand?"
                                    },
                                    "answer": {
                                        "type": "string",
                                        "description": "FAQ-Antwort",
                                        "example": "Der Versand dauert in der Regel 1 bis 3 Werktage."
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Id des Multishops",
                                        "example": 1
                                    },
                                    "sort_order": {
                                        "type": "integer",
                                        "description": "Sortierung des FAQ-Eintrags",
                                        "example": 10
                                    }
                                }
                            },
                            "example": {
                                "answer": "Der Versand dauert in der Regel 1 bis 3 Werktage.",
                                "sort_order": 20
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "faq.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "faq.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "faq"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "FAQ-Eintrag loeschen.",
                "description": "Loescht einen FAQ-Eintrag.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteFaqDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "FAQ-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "faq.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "faq.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/faq/search": {
            "get": {
                "tags": [
                    "faq"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "v2/docs/returns/Faq/get_faq.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/faq/1",
                                        "question": "Wie lange dauert der Versand?",
                                        "answer": "Der Versand dauert in der Regel 1 bis 3 Werktage.",
                                        "multishop_id": 1,
                                        "sort_order": 10
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in FAQ-Eintraegen nach einem String.",
                "description": "Sucht in FAQ-Eintraegen nach Frage.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetFaqSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "faq.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "faq.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/firmmultishops": {
            "get": {
                "tags": [
                    "firmmultishops"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "string",
                                                        "example": "1:1",
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "/shop/api/v2/private/firmmultishops/1?multishop_id=1",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "firm_id": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "ID des Herstellers."
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "ID des Multishops."
                                                    },
                                                    "description": {
                                                        "type": "string",
                                                        "example": "<p>Brand description for this shop.</p>",
                                                        "description": "Beschreibung des Datensatzes."
                                                    },
                                                    "description2": {
                                                        "type": "string",
                                                        "example": "<p>Additional brand description.</p>",
                                                        "description": "Feld `description2` des Datensatzes."
                                                    },
                                                    "firm_location": {
                                                        "type": "string",
                                                        "example": "/shop/api/v2/private/manufactors/1",
                                                        "description": "API-URL zum Hersteller."
                                                    },
                                                    "firm_name": {
                                                        "type": "string",
                                                        "example": "Example Brand",
                                                        "description": "Name des Herstellers."
                                                    },
                                                    "firm_exact_name": {
                                                        "type": "string",
                                                        "example": "Example Brand GmbH",
                                                        "description": "Feld `firm_exact_name` des Datensatzes."
                                                    },
                                                    "multishop_location": {
                                                        "type": "string",
                                                        "example": "/shop/api/v2/private/multishops/1",
                                                        "description": "API-URL zum Multishop."
                                                    },
                                                    "shop_name": {
                                                        "type": "string",
                                                        "example": "Default shop",
                                                        "description": "Name des Shops."
                                                    },
                                                    "server_name": {
                                                        "type": "string",
                                                        "example": "example.org",
                                                        "description": "Feld `server_name` des Datensatzes."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1,
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100,
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0,
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Firmmultishops."
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Hersteller-Multishop-Beschreibungen abrufen",
                "description": "Gibt Herstellerbeschreibungen je Multishop zurueck. Schreibzugriffe sind nicht freigegeben, weil die Backend-UI diese Felder zusammen mit Hersteller-, Permalink-, Content-Slot- und Webhook-Logik speichert.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetFirmmultishopsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Hersteller- und Multishopdetails ausgeben."
                    },
                    {
                        "name": "firm_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Hersteller filtern."
                    },
                    {
                        "name": "multishop_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Multishop filtern."
                    },
                    {
                        "name": "firm_name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Herstellername filtern."
                    },
                    {
                        "name": "shop_name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Shopname filtern."
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "firmmultishops.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "firmmultishops.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/firmmultishops/{id}": {
            "get": {
                "tags": [
                    "firmmultishops"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "1:1",
                                                    "description": "Interne ID des Datensatzes."
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "/shop/api/v2/private/firmmultishops/1?multishop_id=1",
                                                    "description": "API-URL zur Detailansicht des Datensatzes."
                                                },
                                                "firm_id": {
                                                    "type": "integer",
                                                    "example": 1,
                                                    "description": "ID des Herstellers."
                                                },
                                                "multishop_id": {
                                                    "type": "integer",
                                                    "example": 1,
                                                    "description": "ID des Multishops."
                                                },
                                                "description": {
                                                    "type": "string",
                                                    "example": "<p>Brand description for this shop.</p>",
                                                    "description": "Beschreibung des Datensatzes."
                                                },
                                                "description2": {
                                                    "type": "string",
                                                    "example": "<p>Additional brand description.</p>",
                                                    "description": "Feld `description2` des Datensatzes."
                                                },
                                                "firm_location": {
                                                    "type": "string",
                                                    "example": "/shop/api/v2/private/manufactors/1",
                                                    "description": "API-URL zum Hersteller."
                                                },
                                                "firm_name": {
                                                    "type": "string",
                                                    "example": "Example Brand",
                                                    "description": "Name des Herstellers."
                                                },
                                                "firm_exact_name": {
                                                    "type": "string",
                                                    "example": "Example Brand GmbH",
                                                    "description": "Feld `firm_exact_name` des Datensatzes."
                                                },
                                                "multishop_location": {
                                                    "type": "string",
                                                    "example": "/shop/api/v2/private/multishops/1",
                                                    "description": "API-URL zum Multishop."
                                                },
                                                "shop_name": {
                                                    "type": "string",
                                                    "example": "Default shop",
                                                    "description": "Name des Shops."
                                                },
                                                "server_name": {
                                                    "type": "string",
                                                    "example": "example.org",
                                                    "description": "Feld `server_name` des Datensatzes."
                                                }
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        }
                                    },
                                    "description": "Schema fuer Firmmultishops."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "1:1",
                                            "location": "/shop/api/v2/private/firmmultishops/1?multishop_id=1",
                                            "firm_id": 1,
                                            "multishop_id": 1
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 100,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Hersteller-Multishop-Beschreibung abrufen",
                "description": "Gibt eine einzelne Hersteller-Multishop-Beschreibung zurueck.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetFirmmultishopsDetailPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "firmmultishops.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "firmmultishops.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/firmmultishops/search": {
            "get": {
                "tags": [
                    "firmmultishops"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "string",
                                                        "example": "1:1",
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "/shop/api/v2/private/firmmultishops/1?multishop_id=1",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "firm_id": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "ID des Herstellers."
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "ID des Multishops."
                                                    },
                                                    "description": {
                                                        "type": "string",
                                                        "example": "<p>Brand description for this shop.</p>",
                                                        "description": "Beschreibung des Datensatzes."
                                                    },
                                                    "description2": {
                                                        "type": "string",
                                                        "example": "<p>Additional brand description.</p>",
                                                        "description": "Feld `description2` des Datensatzes."
                                                    },
                                                    "firm_location": {
                                                        "type": "string",
                                                        "example": "/shop/api/v2/private/manufactors/1",
                                                        "description": "API-URL zum Hersteller."
                                                    },
                                                    "firm_name": {
                                                        "type": "string",
                                                        "example": "Example Brand",
                                                        "description": "Name des Herstellers."
                                                    },
                                                    "firm_exact_name": {
                                                        "type": "string",
                                                        "example": "Example Brand GmbH",
                                                        "description": "Feld `firm_exact_name` des Datensatzes."
                                                    },
                                                    "multishop_location": {
                                                        "type": "string",
                                                        "example": "/shop/api/v2/private/multishops/1",
                                                        "description": "API-URL zum Multishop."
                                                    },
                                                    "shop_name": {
                                                        "type": "string",
                                                        "example": "Default shop",
                                                        "description": "Name des Shops."
                                                    },
                                                    "server_name": {
                                                        "type": "string",
                                                        "example": "example.org",
                                                        "description": "Feld `server_name` des Datensatzes."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1,
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100,
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0,
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Firmmultishops."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "1:1",
                                            "location": "/shop/api/v2/private/firmmultishops/1?multishop_id=1",
                                            "firm_id": 1,
                                            "multishop_id": 1
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Hersteller-Multishop-Beschreibungen suchen",
                "description": "Sucht Hersteller-Multishop-Beschreibungen nach Hersteller oder Shop.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetFirmmultishopsSearchPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "firmmultishops.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "firmmultishops.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/inventories": {
            "get": {
                "tags": [
                    "inventories"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Listenantwort fuer Inventurlaeufe.",
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                    },
                                                    "created_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "Erstellungszeitpunkt des Datensatzes."
                                                    },
                                                    "final_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "Feld `final_at` des Datensatzes."
                                                    },
                                                    "user_id": {
                                                        "type": "integer",
                                                        "description": "ID des Backend-Benutzers."
                                                    },
                                                    "status": {
                                                        "type": "integer",
                                                        "description": "Statuswert des Datensatzes."
                                                    },
                                                    "status_name": {
                                                        "type": "string",
                                                        "description": "Lesbarer Name des Status."
                                                    },
                                                    "old_purchase_prices": {
                                                        "type": "boolean",
                                                        "description": "Feld `old_purchase_prices` des Datensatzes."
                                                    },
                                                    "booking_mode": {
                                                        "type": "integer",
                                                        "description": "Feld `booking_mode` des Datensatzes."
                                                    },
                                                    "booking_mode_name": {
                                                        "type": "string",
                                                        "description": "Feld `booking_mode_name` des Datensatzes."
                                                    },
                                                    "detail_count": {
                                                        "type": "integer",
                                                        "description": "Anzahl der Detaildatensaetze."
                                                    },
                                                    "open_detail_count": {
                                                        "type": "integer",
                                                        "description": "Feld `open_detail_count` des Datensatzes."
                                                    },
                                                    "depot_count": {
                                                        "type": "integer",
                                                        "description": "Feld `depot_count` des Datensatzes."
                                                    },
                                                    "depot_counts": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "depot_id": {
                                                                    "type": "integer",
                                                                    "description": "Feld `depot_id` des Datensatzes."
                                                                },
                                                                "depot_location": {
                                                                    "type": "string",
                                                                    "description": "Feld `depot_location` des Datensatzes."
                                                                },
                                                                "detail_count": {
                                                                    "type": "integer",
                                                                    "description": "Anzahl der Detaildatensaetze."
                                                                }
                                                            },
                                                            "description": "Feld `depot_counts` des Datensatzes."
                                                        },
                                                        "description": "Feld `depot_counts` des Datensatzes."
                                                    },
                                                    "details": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer",
                                                                    "description": "Interne ID des Datensatzes."
                                                                },
                                                                "inventory_id": {
                                                                    "type": "integer",
                                                                    "description": "Feld `inventory_id` des Datensatzes."
                                                                },
                                                                "variation_id": {
                                                                    "type": "integer",
                                                                    "description": "ID der Artikelvariante."
                                                                },
                                                                "variation_location": {
                                                                    "type": [
                                                                        "string",
                                                                        "null"
                                                                    ],
                                                                    "description": "API-URL zur Artikelvariante."
                                                                },
                                                                "product_id": {
                                                                    "type": "integer",
                                                                    "description": "ID des Artikels."
                                                                },
                                                                "product_location": {
                                                                    "type": [
                                                                        "string",
                                                                        "null"
                                                                    ],
                                                                    "description": "API-URL zum Artikel."
                                                                },
                                                                "depot_id": {
                                                                    "type": "integer",
                                                                    "description": "Feld `depot_id` des Datensatzes."
                                                                },
                                                                "depot_location": {
                                                                    "type": "string",
                                                                    "description": "Feld `depot_location` des Datensatzes."
                                                                },
                                                                "target_quantity": {
                                                                    "type": "number",
                                                                    "description": "Feld `target_quantity` des Datensatzes."
                                                                },
                                                                "actual_quantity": {
                                                                    "type": "number",
                                                                    "description": "Feld `actual_quantity` des Datensatzes."
                                                                },
                                                                "time_quantity": {
                                                                    "type": "number",
                                                                    "description": "Feld `time_quantity` des Datensatzes."
                                                                },
                                                                "difference": {
                                                                    "type": "number",
                                                                    "description": "Feld `difference` des Datensatzes."
                                                                },
                                                                "status": {
                                                                    "type": "integer",
                                                                    "description": "Statuswert des Datensatzes."
                                                                },
                                                                "status_name": {
                                                                    "type": "string",
                                                                    "description": "Lesbarer Name des Status."
                                                                },
                                                                "purchase_price": {
                                                                    "type": "number",
                                                                    "description": "Feld `purchase_price` des Datensatzes."
                                                                },
                                                                "positions": {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "id": {
                                                                                "type": "integer",
                                                                                "description": "Interne ID des Datensatzes."
                                                                            },
                                                                            "detail_id": {
                                                                                "type": "integer",
                                                                                "description": "Feld `detail_id` des Datensatzes."
                                                                            },
                                                                            "depot_entry_id": {
                                                                                "type": "integer",
                                                                                "description": "Feld `depot_entry_id` des Datensatzes."
                                                                            },
                                                                            "depot_id": {
                                                                                "type": "integer",
                                                                                "description": "Feld `depot_id` des Datensatzes."
                                                                            },
                                                                            "target_quantity": {
                                                                                "type": "number",
                                                                                "description": "Feld `target_quantity` des Datensatzes."
                                                                            },
                                                                            "actual_quantity": {
                                                                                "type": "number",
                                                                                "description": "Feld `actual_quantity` des Datensatzes."
                                                                            },
                                                                            "difference": {
                                                                                "type": "number",
                                                                                "description": "Feld `difference` des Datensatzes."
                                                                            }
                                                                        },
                                                                        "description": "Feld `positions` des Datensatzes."
                                                                    },
                                                                    "description": "Feld `positions` des Datensatzes."
                                                                }
                                                            },
                                                            "description": "Detaildaten zum Datensatz."
                                                        },
                                                        "description": "Detaildaten zum Datensatz."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Gesamtanzahl der passenden Datensaetze."
                                                },
                                                "limit": {
                                                    "type": "integer",
                                                    "description": "Verwendetes Limit."
                                                },
                                                "offset": {
                                                    "type": "integer",
                                                    "description": "Verwendeter Offset."
                                                },
                                                "filters": {
                                                    "type": "object",
                                                    "description": "Feld `filters` des Datensatzes."
                                                }
                                            },
                                            "description": "Metadaten zur Listenabfrage."
                                        }
                                    }
                                },
                                "example": {
                                    "request": {
                                        "method": "GET",
                                        "path": "/api/v2/private/inventories?limit=2&offset=0&details=false"
                                    },
                                    "response": {
                                        "status": "ok",
                                        "data": [
                                            {
                                                "id": 12,
                                                "location": "/private/inventories/12",
                                                "name": "Inventur Hauptlager",
                                                "created_at": "2026-06-01 10:30:00",
                                                "final_at": null,
                                                "user_id": 1,
                                                "status": 0,
                                                "status_name": "open",
                                                "old_purchase_prices": false,
                                                "booking_mode": 1,
                                                "booking_mode_name": "storage_locations",
                                                "detail_count": 42,
                                                "open_detail_count": 42,
                                                "depot_count": 1,
                                                "depot_counts": [
                                                    {
                                                        "depot_id": 1,
                                                        "depot_location": "/private/depots/1",
                                                        "detail_count": 42
                                                    }
                                                ]
                                            }
                                        ],
                                        "meta": {
                                            "total": 1,
                                            "limit": 2,
                                            "offset": 0,
                                            "filters": []
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Inventurlaeufe abrufen",
                "description": "Gibt Inventurlaeufe zurueck. Mit details=true werden Inventurpositionen und Lagerplaetze ergaenzt. Schreibzugriffe sind nicht freigegeben, weil die Backend-UI Bestandueberschreibung und Buchungslogik ausfuehrt.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetInventoriesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Inventurpositionen und Lagerplaetze ausgeben."
                    },
                    {
                        "name": "id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Inventur-ID filtern."
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Inventurname filtern."
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Inventurstatus filtern."
                    },
                    {
                        "name": "user_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Ersteller filtern."
                    },
                    {
                        "name": "booking_mode",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Buchungsmodus filtern."
                    },
                    {
                        "name": "depot_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Filter inventories that contain a depot."
                    },
                    {
                        "name": "created_from",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Erstellungsdatum ab YYYY-MM-DD filtern."
                    },
                    {
                        "name": "created_to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Erstellungsdatum bis YYYY-MM-DD filtern."
                    },
                    {
                        "name": "final_from",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Abschlussdatum ab YYYY-MM-DD filtern."
                    },
                    {
                        "name": "final_to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Abschlussdatum bis YYYY-MM-DD filtern."
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    },
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/inventories/{id}": {
            "get": {
                "tags": [
                    "inventories"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Detailantwort fuer einen Inventurlauf.",
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "description": "Interne ID des Datensatzes."
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "description": "API-URL zur Detailansicht des Datensatzes."
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                },
                                                "created_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Erstellungszeitpunkt des Datensatzes."
                                                },
                                                "final_at": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "Feld `final_at` des Datensatzes."
                                                },
                                                "user_id": {
                                                    "type": "integer",
                                                    "description": "ID des Backend-Benutzers."
                                                },
                                                "status": {
                                                    "type": "integer",
                                                    "description": "Statuswert des Datensatzes."
                                                },
                                                "status_name": {
                                                    "type": "string",
                                                    "description": "Lesbarer Name des Status."
                                                },
                                                "old_purchase_prices": {
                                                    "type": "boolean",
                                                    "description": "Feld `old_purchase_prices` des Datensatzes."
                                                },
                                                "booking_mode": {
                                                    "type": "integer",
                                                    "description": "Feld `booking_mode` des Datensatzes."
                                                },
                                                "booking_mode_name": {
                                                    "type": "string",
                                                    "description": "Feld `booking_mode_name` des Datensatzes."
                                                },
                                                "detail_count": {
                                                    "type": "integer",
                                                    "description": "Anzahl der Detaildatensaetze."
                                                },
                                                "open_detail_count": {
                                                    "type": "integer",
                                                    "description": "Feld `open_detail_count` des Datensatzes."
                                                },
                                                "depot_count": {
                                                    "type": "integer",
                                                    "description": "Feld `depot_count` des Datensatzes."
                                                },
                                                "depot_counts": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "depot_id": {
                                                                "type": "integer",
                                                                "description": "Feld `depot_id` des Datensatzes."
                                                            },
                                                            "depot_location": {
                                                                "type": "string",
                                                                "description": "Feld `depot_location` des Datensatzes."
                                                            },
                                                            "detail_count": {
                                                                "type": "integer",
                                                                "description": "Anzahl der Detaildatensaetze."
                                                            }
                                                        },
                                                        "description": "Feld `depot_counts` des Datensatzes."
                                                    },
                                                    "description": "Feld `depot_counts` des Datensatzes."
                                                },
                                                "details": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "description": "Interne ID des Datensatzes."
                                                            },
                                                            "inventory_id": {
                                                                "type": "integer",
                                                                "description": "Feld `inventory_id` des Datensatzes."
                                                            },
                                                            "variation_id": {
                                                                "type": "integer",
                                                                "description": "ID der Artikelvariante."
                                                            },
                                                            "variation_location": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ],
                                                                "description": "API-URL zur Artikelvariante."
                                                            },
                                                            "product_id": {
                                                                "type": "integer",
                                                                "description": "ID des Artikels."
                                                            },
                                                            "product_location": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ],
                                                                "description": "API-URL zum Artikel."
                                                            },
                                                            "depot_id": {
                                                                "type": "integer",
                                                                "description": "Feld `depot_id` des Datensatzes."
                                                            },
                                                            "depot_location": {
                                                                "type": "string",
                                                                "description": "Feld `depot_location` des Datensatzes."
                                                            },
                                                            "target_quantity": {
                                                                "type": "number",
                                                                "description": "Feld `target_quantity` des Datensatzes."
                                                            },
                                                            "actual_quantity": {
                                                                "type": "number",
                                                                "description": "Feld `actual_quantity` des Datensatzes."
                                                            },
                                                            "time_quantity": {
                                                                "type": "number",
                                                                "description": "Feld `time_quantity` des Datensatzes."
                                                            },
                                                            "difference": {
                                                                "type": "number",
                                                                "description": "Feld `difference` des Datensatzes."
                                                            },
                                                            "status": {
                                                                "type": "integer",
                                                                "description": "Statuswert des Datensatzes."
                                                            },
                                                            "status_name": {
                                                                "type": "string",
                                                                "description": "Lesbarer Name des Status."
                                                            },
                                                            "purchase_price": {
                                                                "type": "number",
                                                                "description": "Feld `purchase_price` des Datensatzes."
                                                            },
                                                            "positions": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "id": {
                                                                            "type": "integer",
                                                                            "description": "Interne ID des Datensatzes."
                                                                        },
                                                                        "detail_id": {
                                                                            "type": "integer",
                                                                            "description": "Feld `detail_id` des Datensatzes."
                                                                        },
                                                                        "depot_entry_id": {
                                                                            "type": "integer",
                                                                            "description": "Feld `depot_entry_id` des Datensatzes."
                                                                        },
                                                                        "depot_id": {
                                                                            "type": "integer",
                                                                            "description": "Feld `depot_id` des Datensatzes."
                                                                        },
                                                                        "target_quantity": {
                                                                            "type": "number",
                                                                            "description": "Feld `target_quantity` des Datensatzes."
                                                                        },
                                                                        "actual_quantity": {
                                                                            "type": "number",
                                                                            "description": "Feld `actual_quantity` des Datensatzes."
                                                                        },
                                                                        "difference": {
                                                                            "type": "number",
                                                                            "description": "Feld `difference` des Datensatzes."
                                                                        }
                                                                    },
                                                                    "description": "Feld `positions` des Datensatzes."
                                                                },
                                                                "description": "Feld `positions` des Datensatzes."
                                                            }
                                                        },
                                                        "description": "Detaildaten zum Datensatz."
                                                    },
                                                    "description": "Detaildaten zum Datensatz."
                                                }
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        }
                                    }
                                },
                                "example": {
                                    "request": {
                                        "method": "GET",
                                        "path": "/api/v2/private/inventories/12?details=true"
                                    },
                                    "response": {
                                        "status": "ok",
                                        "data": {
                                            "id": 12,
                                            "location": "/private/inventories/12",
                                            "name": "Inventur Hauptlager",
                                            "created_at": "2026-06-01 10:30:00",
                                            "final_at": null,
                                            "user_id": 1,
                                            "status": 0,
                                            "status_name": "open",
                                            "old_purchase_prices": false,
                                            "booking_mode": 1,
                                            "booking_mode_name": "storage_locations",
                                            "detail_count": 1,
                                            "open_detail_count": 1,
                                            "depot_count": 1,
                                            "depot_counts": [
                                                {
                                                    "depot_id": 1,
                                                    "depot_location": "/private/depots/1",
                                                    "detail_count": 1
                                                }
                                            ],
                                            "details": [
                                                {
                                                    "id": 88,
                                                    "inventory_id": 12,
                                                    "variation_id": 4711,
                                                    "variation_location": "/private/productvariations/4711",
                                                    "product_id": 123,
                                                    "product_location": "/private/products/123",
                                                    "depot_id": 1,
                                                    "depot_location": "/private/depots/1",
                                                    "target_quantity": 10,
                                                    "actual_quantity": 9,
                                                    "time_quantity": 10,
                                                    "difference": -1,
                                                    "status": 0,
                                                    "status_name": "open",
                                                    "purchase_price": 4.5,
                                                    "positions": []
                                                }
                                            ]
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Inventurlauf abrufen",
                "description": "Gibt einen einzelnen Inventurlauf zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetInventoriesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/inventories/search": {
            "get": {
                "tags": [
                    "inventories"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Suchantwort fuer Inventurlaeufe.",
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                    },
                                                    "created_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "Erstellungszeitpunkt des Datensatzes."
                                                    },
                                                    "final_at": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "Feld `final_at` des Datensatzes."
                                                    },
                                                    "user_id": {
                                                        "type": "integer",
                                                        "description": "ID des Backend-Benutzers."
                                                    },
                                                    "status": {
                                                        "type": "integer",
                                                        "description": "Statuswert des Datensatzes."
                                                    },
                                                    "status_name": {
                                                        "type": "string",
                                                        "description": "Lesbarer Name des Status."
                                                    },
                                                    "old_purchase_prices": {
                                                        "type": "boolean",
                                                        "description": "Feld `old_purchase_prices` des Datensatzes."
                                                    },
                                                    "booking_mode": {
                                                        "type": "integer",
                                                        "description": "Feld `booking_mode` des Datensatzes."
                                                    },
                                                    "booking_mode_name": {
                                                        "type": "string",
                                                        "description": "Feld `booking_mode_name` des Datensatzes."
                                                    },
                                                    "detail_count": {
                                                        "type": "integer",
                                                        "description": "Anzahl der Detaildatensaetze."
                                                    },
                                                    "open_detail_count": {
                                                        "type": "integer",
                                                        "description": "Feld `open_detail_count` des Datensatzes."
                                                    },
                                                    "depot_count": {
                                                        "type": "integer",
                                                        "description": "Feld `depot_count` des Datensatzes."
                                                    },
                                                    "depot_counts": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "depot_id": {
                                                                    "type": "integer",
                                                                    "description": "Feld `depot_id` des Datensatzes."
                                                                },
                                                                "depot_location": {
                                                                    "type": "string",
                                                                    "description": "Feld `depot_location` des Datensatzes."
                                                                },
                                                                "detail_count": {
                                                                    "type": "integer",
                                                                    "description": "Anzahl der Detaildatensaetze."
                                                                }
                                                            },
                                                            "description": "Feld `depot_counts` des Datensatzes."
                                                        },
                                                        "description": "Feld `depot_counts` des Datensatzes."
                                                    },
                                                    "details": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer",
                                                                    "description": "Interne ID des Datensatzes."
                                                                },
                                                                "inventory_id": {
                                                                    "type": "integer",
                                                                    "description": "Feld `inventory_id` des Datensatzes."
                                                                },
                                                                "variation_id": {
                                                                    "type": "integer",
                                                                    "description": "ID der Artikelvariante."
                                                                },
                                                                "variation_location": {
                                                                    "type": [
                                                                        "string",
                                                                        "null"
                                                                    ],
                                                                    "description": "API-URL zur Artikelvariante."
                                                                },
                                                                "product_id": {
                                                                    "type": "integer",
                                                                    "description": "ID des Artikels."
                                                                },
                                                                "product_location": {
                                                                    "type": [
                                                                        "string",
                                                                        "null"
                                                                    ],
                                                                    "description": "API-URL zum Artikel."
                                                                },
                                                                "depot_id": {
                                                                    "type": "integer",
                                                                    "description": "Feld `depot_id` des Datensatzes."
                                                                },
                                                                "depot_location": {
                                                                    "type": "string",
                                                                    "description": "Feld `depot_location` des Datensatzes."
                                                                },
                                                                "target_quantity": {
                                                                    "type": "number",
                                                                    "description": "Feld `target_quantity` des Datensatzes."
                                                                },
                                                                "actual_quantity": {
                                                                    "type": "number",
                                                                    "description": "Feld `actual_quantity` des Datensatzes."
                                                                },
                                                                "time_quantity": {
                                                                    "type": "number",
                                                                    "description": "Feld `time_quantity` des Datensatzes."
                                                                },
                                                                "difference": {
                                                                    "type": "number",
                                                                    "description": "Feld `difference` des Datensatzes."
                                                                },
                                                                "status": {
                                                                    "type": "integer",
                                                                    "description": "Statuswert des Datensatzes."
                                                                },
                                                                "status_name": {
                                                                    "type": "string",
                                                                    "description": "Lesbarer Name des Status."
                                                                },
                                                                "purchase_price": {
                                                                    "type": "number",
                                                                    "description": "Feld `purchase_price` des Datensatzes."
                                                                },
                                                                "positions": {
                                                                    "type": "array",
                                                                    "items": {
                                                                        "type": "object",
                                                                        "properties": {
                                                                            "id": {
                                                                                "type": "integer",
                                                                                "description": "Interne ID des Datensatzes."
                                                                            },
                                                                            "detail_id": {
                                                                                "type": "integer",
                                                                                "description": "Feld `detail_id` des Datensatzes."
                                                                            },
                                                                            "depot_entry_id": {
                                                                                "type": "integer",
                                                                                "description": "Feld `depot_entry_id` des Datensatzes."
                                                                            },
                                                                            "depot_id": {
                                                                                "type": "integer",
                                                                                "description": "Feld `depot_id` des Datensatzes."
                                                                            },
                                                                            "target_quantity": {
                                                                                "type": "number",
                                                                                "description": "Feld `target_quantity` des Datensatzes."
                                                                            },
                                                                            "actual_quantity": {
                                                                                "type": "number",
                                                                                "description": "Feld `actual_quantity` des Datensatzes."
                                                                            },
                                                                            "difference": {
                                                                                "type": "number",
                                                                                "description": "Feld `difference` des Datensatzes."
                                                                            }
                                                                        },
                                                                        "description": "Feld `positions` des Datensatzes."
                                                                    },
                                                                    "description": "Feld `positions` des Datensatzes."
                                                                }
                                                            },
                                                            "description": "Detaildaten zum Datensatz."
                                                        },
                                                        "description": "Detaildaten zum Datensatz."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Gesamtanzahl der passenden Datensaetze."
                                                },
                                                "limit": {
                                                    "type": "integer",
                                                    "description": "Verwendetes Limit."
                                                },
                                                "offset": {
                                                    "type": "integer",
                                                    "description": "Verwendeter Offset."
                                                },
                                                "query": {
                                                    "type": "string",
                                                    "description": "Feld `query` des Datensatzes."
                                                }
                                            },
                                            "description": "Metadaten zur Listenabfrage."
                                        }
                                    }
                                },
                                "example": {
                                    "request": {
                                        "method": "GET",
                                        "path": "/api/v2/private/inventories/search?q=Hauptlager&limit=10"
                                    },
                                    "response": {
                                        "status": "ok",
                                        "data": [
                                            {
                                                "id": 12,
                                                "location": "/private/inventories/12",
                                                "name": "Inventur Hauptlager",
                                                "created_at": "2026-06-01 10:30:00",
                                                "final_at": null,
                                                "user_id": 1,
                                                "status": 0,
                                                "status_name": "open",
                                                "old_purchase_prices": false,
                                                "booking_mode": 1,
                                                "booking_mode_name": "storage_locations",
                                                "detail_count": 42,
                                                "open_detail_count": 42,
                                                "depot_count": 1,
                                                "depot_counts": [
                                                    {
                                                        "depot_id": 1,
                                                        "depot_location": "/private/depots/1",
                                                        "detail_count": 42
                                                    }
                                                ]
                                            }
                                        ],
                                        "meta": {
                                            "total": 1,
                                            "limit": 10,
                                            "offset": 0,
                                            "query": "Hauptlager"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Inventurlaeufe suchen",
                "description": "Sucht Inventurlaeufe nach Name oder ID.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetInventoriesSearchPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/languages": {
            "get": {
                "tags": [
                    "languages"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "description": "Unique language id"
                                            },
                                            "location": {
                                                "type": "string",
                                                "description": "API resource location"
                                            },
                                            "name": {
                                                "type": "string",
                                                "description": "Language name"
                                            },
                                            "folder": {
                                                "type": "string",
                                                "description": "Language folder"
                                            },
                                            "iso2": {
                                                "type": "string",
                                                "description": "ISO-2 language code"
                                            },
                                            "active": {
                                                "type": "boolean",
                                                "description": "Whether the language is active"
                                            },
                                            "is_default_frontend_language": {
                                                "type": "boolean",
                                                "description": "Default frontend language flag"
                                            },
                                            "is_default_admin_language": {
                                                "type": "boolean",
                                                "description": "Default admin language flag"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/languages/1",
                                        "name": "Deutsch",
                                        "iso2": "de",
                                        "active": true
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Sprachen abrufen.",
                "description": "Liefert Daten fuer mehrere Sprachen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetLanguagesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "active": {
                                    "type": "boolean"
                                },
                                "iso2": {
                                    "type": "string"
                                }
                            }
                        },
                        "description": "Filtert nach Bezeichnung, Aktivstatus oder ISO-2-Code"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "languages.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "languages.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/languages/{id}": {
            "get": {
                "tags": [
                    "languages"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Unique language id"
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API resource location"
                                        },
                                        "name": {
                                            "type": "string",
                                            "description": "Language name"
                                        },
                                        "folder": {
                                            "type": "string",
                                            "description": "Language folder"
                                        },
                                        "iso2": {
                                            "type": "string",
                                            "description": "ISO-2 language code"
                                        },
                                        "active": {
                                            "type": "boolean",
                                            "description": "Whether the language is active"
                                        },
                                        "is_default_frontend_language": {
                                            "type": "boolean",
                                            "description": "Default frontend language flag"
                                        },
                                        "is_default_admin_language": {
                                            "type": "boolean",
                                            "description": "Default admin language flag"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/languages/1",
                                    "name": "Deutsch",
                                    "folder": "de",
                                    "iso2": "de",
                                    "active": true,
                                    "is_default_frontend_language": true,
                                    "is_default_admin_language": true
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Sprache abrufen.",
                "description": "Liefert Daten zu einer Sprache.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetLanguagesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Sprach-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "languages.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "languages.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/languages/search": {
            "get": {
                "tags": [
                    "languages"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "description": "Unique language id"
                                            },
                                            "location": {
                                                "type": "string",
                                                "description": "API resource location"
                                            },
                                            "name": {
                                                "type": "string",
                                                "description": "Language name"
                                            },
                                            "folder": {
                                                "type": "string",
                                                "description": "Language folder"
                                            },
                                            "iso2": {
                                                "type": "string",
                                                "description": "ISO-2 language code"
                                            },
                                            "active": {
                                                "type": "boolean",
                                                "description": "Whether the language is active"
                                            },
                                            "is_default_frontend_language": {
                                                "type": "boolean",
                                                "description": "Default frontend language flag"
                                            },
                                            "is_default_admin_language": {
                                                "type": "boolean",
                                                "description": "Default admin language flag"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/languages/1",
                                        "name": "Deutsch",
                                        "folder": "de",
                                        "iso2": "de",
                                        "active": true,
                                        "is_default_frontend_language": true,
                                        "is_default_admin_language": true
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Sprachen nach einem String.",
                "description": "Sucht in Sprachen nach Bezeichnung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetLanguagesSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "languages.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "languages.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/manufactors": {
            "get": {
                "tags": [
                    "manufactors"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Liste von Herstellern",
                                    "items": {
                                        "$ref": "#/paths/~1private~1manufactors~1{id}/get/responses/200/content/application~1json/schema"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 42,
                                        "location": "https://shop.local/api/v2/private/manufactors/42"
                                    },
                                    {
                                        "id": 43,
                                        "location": "https://shop.local/api/v2/private/manufactors/43"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Hersteller abrufen.",
                "description": "Liefert Daten fuer mehrere Hersteller.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetManufactorsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "manufactors.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "manufactors.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "manufactors"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Hersteller erstellen.",
                "description": "Erstellt einen Hersteller.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostManufactorsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Request-Body fuer POST /private/manufactors. Der Permalink wird aus dem Namen generiert und kann nicht ueber die API gesetzt werden.",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Markenname"
                                    },
                                    "company_name": {
                                        "type": "string",
                                        "description": "Offizieller Firmenname"
                                    },
                                    "street": {
                                        "type": "string",
                                        "description": "Strasse und Hausnummer"
                                    },
                                    "zip": {
                                        "type": "string",
                                        "description": "PLZ"
                                    },
                                    "city": {
                                        "type": "string",
                                        "description": "Ort"
                                    },
                                    "country": {
                                        "type": "string",
                                        "description": "Land"
                                    },
                                    "firstname": {
                                        "type": "string",
                                        "description": "Ansprechpartner Vorname"
                                    },
                                    "lastname": {
                                        "type": "string",
                                        "description": "Ansprechpartner Nachname"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "description": "Telefonnummer"
                                    },
                                    "fax": {
                                        "type": "string",
                                        "description": "Faxnummer"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "E-Mail-Adresse"
                                    },
                                    "website": {
                                        "type": "string",
                                        "format": "uri",
                                        "description": "Webseite"
                                    },
                                    "info": {
                                        "type": "string",
                                        "description": "Interne Information"
                                    },
                                    "description": {
                                        "type": "string",
                                        "description": "Beschreibung"
                                    },
                                    "description2": {
                                        "type": "string",
                                        "description": "Weitere Beschreibung"
                                    },
                                    "show_in_block": {
                                        "type": "boolean",
                                        "description": "Hersteller im Frontend-Herstellerblock anzeigen"
                                    },
                                    "meta_name": {
                                        "type": "string",
                                        "description": "Meta Title"
                                    },
                                    "meta_description": {
                                        "type": "string",
                                        "description": "Meta Description"
                                    },
                                    "meta_keywords": {
                                        "type": "string",
                                        "description": "Meta Keywords"
                                    },
                                    "logo": {
                                        "type": "object",
                                        "description": "Logo-Upload als Base64-Stream. Der Dateiname wird normalisiert, mit Hersteller-ID und Feldname gepraefixt und nach images/firmlogos/ gespeichert.",
                                        "properties": {
                                            "img": {
                                                "type": "string",
                                                "description": "Original-Dateiname"
                                            },
                                            "stream": {
                                                "type": "string",
                                                "format": "byte",
                                                "description": "Base64-kodierter Dateiinhalt"
                                            },
                                            "delete": {
                                                "type": "boolean",
                                                "description": "Bestehendes Logo entfernen"
                                            }
                                        }
                                    },
                                    "logo_product": {
                                        "type": "object",
                                        "description": "Logo-Upload fuer die Produktansicht als Base64-Stream. Der Dateiname wird normalisiert, mit Hersteller-ID und Feldname gepraefixt und nach images/firmlogos/ gespeichert.",
                                        "properties": {
                                            "img": {
                                                "type": "string",
                                                "description": "Original-Dateiname"
                                            },
                                            "stream": {
                                                "type": "string",
                                                "format": "byte",
                                                "description": "Base64-kodierter Dateiinhalt"
                                            },
                                            "delete": {
                                                "type": "boolean",
                                                "description": "Bestehendes Logo entfernen"
                                            }
                                        }
                                    },
                                    "logo_category": {
                                        "type": "object",
                                        "description": "Logo-Upload fuer die Produktgruppenansicht als Base64-Stream. Der Dateiname wird normalisiert, mit Hersteller-ID und Feldname gepraefixt und nach images/firmlogos/ gespeichert.",
                                        "properties": {
                                            "img": {
                                                "type": "string",
                                                "description": "Original-Dateiname"
                                            },
                                            "stream": {
                                                "type": "string",
                                                "format": "byte",
                                                "description": "Base64-kodierter Dateiinhalt"
                                            },
                                            "delete": {
                                                "type": "boolean",
                                                "description": "Bestehendes Logo entfernen"
                                            }
                                        }
                                    },
                                    "durability_guarantee": {
                                        "type": "object",
                                        "description": "Standardwerte der gewerblichen Haltbarkeitsgarantie (EU-GARAN) fuer Produkte dieses Herstellers. Die Garantieerklaerung kann als Base64-PDF uebertragen werden.",
                                        "properties": {
                                            "enabled": {
                                                "type": "boolean"
                                            },
                                            "duration_years": {
                                                "type": "number",
                                                "nullable": true,
                                                "minimum": 2.5,
                                                "maximum": 99,
                                                "multipleOf": 0.5
                                            },
                                            "producer_name": {
                                                "type": "string"
                                            },
                                            "free_of_charge": {
                                                "type": "boolean"
                                            },
                                            "statement": {
                                                "type": "object",
                                                "description": "Garantieerklaerung als PDF bis 20 MB. Fuer Upload file und stream senden; mit delete=true entfernen.",
                                                "properties": {
                                                    "file": {
                                                        "type": "string"
                                                    },
                                                    "stream": {
                                                        "type": "string",
                                                        "format": "byte"
                                                    },
                                                    "delete": {
                                                        "type": "boolean"
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "use_importeur": {
                                        "type": "boolean",
                                        "description": "Importeurdaten statt Herstellerdaten verwenden"
                                    },
                                    "importeur_name": {
                                        "type": "string",
                                        "description": "Importeur Name"
                                    },
                                    "importeur_street": {
                                        "type": "string",
                                        "description": "Importeur Strasse"
                                    },
                                    "importeur_zip": {
                                        "type": "string",
                                        "description": "Importeur PLZ"
                                    },
                                    "importeur_city": {
                                        "type": "string",
                                        "description": "Importeur Ort"
                                    },
                                    "importeur_country": {
                                        "type": "string",
                                        "description": "Importeur Land"
                                    },
                                    "importeur_email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "Importeur E-Mail-Adresse"
                                    },
                                    "importeur_phone": {
                                        "type": "string",
                                        "description": "Importeur Telefonnummer"
                                    },
                                    "importeur_phone_country_code": {
                                        "type": "string",
                                        "description": "Importeur Telefon-Laendercode, z.B. +49"
                                    },
                                    "use_responsible_person": {
                                        "type": "boolean",
                                        "description": "Verantwortliche Person verwenden"
                                    },
                                    "responsible_person_name": {
                                        "type": "string",
                                        "description": "Name der verantwortlichen Person"
                                    },
                                    "responsible_person_street": {
                                        "type": "string",
                                        "description": "Strasse der verantwortlichen Person"
                                    },
                                    "responsible_person_zip": {
                                        "type": "string",
                                        "description": "PLZ der verantwortlichen Person"
                                    },
                                    "responsible_person_city": {
                                        "type": "string",
                                        "description": "Ort der verantwortlichen Person"
                                    },
                                    "responsible_person_country": {
                                        "type": "string",
                                        "description": "Land der verantwortlichen Person"
                                    },
                                    "responsible_person_email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "E-Mail-Adresse der verantwortlichen Person"
                                    },
                                    "responsible_person_phone": {
                                        "type": "string",
                                        "description": "Telefonnummer der verantwortlichen Person"
                                    },
                                    "responsible_person_phone_country_code": {
                                        "type": "string",
                                        "description": "Telefon-Laendercode der verantwortlichen Person, z.B. +49"
                                    }
                                },
                                "required": [
                                    "name"
                                ]
                            },
                            "example": {
                                "name": "APT Textil",
                                "company_name": "APT Textil GmbH",
                                "street": "Musterstrasse 1",
                                "zip": "12345",
                                "city": "Musterstadt",
                                "country": "Deutschland",
                                "email": "info@example.com",
                                "website": "https://example.com",
                                "show_in_block": true,
                                "description": "Beschreibung des Herstellers",
                                "durability_guarantee": {
                                    "enabled": true,
                                    "duration_years": 5,
                                    "producer_name": "APT Textil GmbH",
                                    "free_of_charge": true,
                                    "statement": {
                                        "file": "garantiebedingungen.pdf",
                                        "stream": "JVBERi0xLjQKJSVFT0Y="
                                    }
                                },
                                "use_responsible_person": true,
                                "responsible_person_name": "Max Mustermann",
                                "responsible_person_street": "Musterstrasse 1",
                                "responsible_person_zip": "12345",
                                "responsible_person_city": "Musterstadt",
                                "responsible_person_country": "Deutschland",
                                "responsible_person_email": "gpsr@example.com",
                                "responsible_person_phone": "+49 123 456789",
                                "responsible_person_phone_country_code": "+49",
                                "logo": {
                                    "img": "APT Logo.png",
                                    "stream": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII="
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "manufactors.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "manufactors.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/manufactors/{id}": {
            "get": {
                "tags": [
                    "manufactors"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Antwort auf GET /private/manufactors/{id} - Herstellerdetails",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Eindeutige Hersteller-ID"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API-Link zum Hersteller"
                                        },
                                        "name": {
                                            "type": "string",
                                            "description": "Markenname"
                                        },
                                        "company_name": {
                                            "type": "string",
                                            "description": "Offizieller Firmenname"
                                        },
                                        "street": {
                                            "type": "string",
                                            "description": "Strasse und Hausnummer"
                                        },
                                        "zip": {
                                            "type": "string",
                                            "description": "PLZ"
                                        },
                                        "city": {
                                            "type": "string",
                                            "description": "Ort"
                                        },
                                        "country": {
                                            "type": "string",
                                            "description": "Land"
                                        },
                                        "firstname": {
                                            "type": "string",
                                            "description": "Ansprechpartner Vorname"
                                        },
                                        "lastname": {
                                            "type": "string",
                                            "description": "Ansprechpartner Nachname"
                                        },
                                        "phone": {
                                            "type": "string",
                                            "description": "Telefonnummer"
                                        },
                                        "fax": {
                                            "type": "string",
                                            "description": "Faxnummer"
                                        },
                                        "email": {
                                            "type": "string",
                                            "format": "email",
                                            "description": "E-Mail-Adresse"
                                        },
                                        "website": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "Webseite"
                                        },
                                        "info": {
                                            "type": "string",
                                            "description": "Interne Information"
                                        },
                                        "description": {
                                            "type": "string",
                                            "description": "Beschreibung"
                                        },
                                        "description2": {
                                            "type": "string",
                                            "description": "Weitere Beschreibung"
                                        },
                                        "show_in_block": {
                                            "type": "boolean",
                                            "description": "Hersteller im Frontend-Herstellerblock anzeigen"
                                        },
                                        "meta_name": {
                                            "type": "string",
                                            "description": "Meta Title"
                                        },
                                        "meta_description": {
                                            "type": "string",
                                            "description": "Meta Description"
                                        },
                                        "meta_keywords": {
                                            "type": "string",
                                            "description": "Meta Keywords"
                                        },
                                        "logo": {
                                            "$ref": "#/properties/logo_product"
                                        },
                                        "logo_product": {
                                            "type": "object",
                                            "properties": {
                                                "file": {
                                                    "type": "string",
                                                    "description": "Dateiname"
                                                },
                                                "path": {
                                                    "type": "string",
                                                    "description": "Relativer Pfad"
                                                },
                                                "url": {
                                                    "type": "string",
                                                    "format": "uri",
                                                    "description": "Vollstaendige URL"
                                                }
                                            }
                                        },
                                        "logo_category": {
                                            "$ref": "#/properties/logo_product"
                                        },
                                        "durability_guarantee": {
                                            "type": "object",
                                            "description": "Beim Hersteller hinterlegte Standardwerte fuer die gewerbliche Haltbarkeitsgarantie (EU-GARAN). Produkte koennen diese Werte leer lassen und dadurch erben.",
                                            "properties": {
                                                "enabled": {
                                                    "type": "boolean"
                                                },
                                                "duration_years": {
                                                    "type": "number",
                                                    "nullable": true,
                                                    "description": "Garantiedauer in Jahren; null bedeutet nicht hinterlegt."
                                                },
                                                "producer_name": {
                                                    "type": "string"
                                                },
                                                "free_of_charge": {
                                                    "type": "boolean"
                                                },
                                                "statement": {
                                                    "type": "object",
                                                    "properties": {
                                                        "file": {
                                                            "type": "string"
                                                        },
                                                        "path": {
                                                            "type": "string"
                                                        },
                                                        "url": {
                                                            "type": "string",
                                                            "format": "uri"
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "use_importeur": {
                                            "type": "boolean",
                                            "description": "Importeurdaten statt Herstellerdaten verwenden"
                                        },
                                        "importeur_name": {
                                            "type": "string",
                                            "description": "Importeur Name"
                                        },
                                        "importeur_street": {
                                            "type": "string",
                                            "description": "Importeur Strasse"
                                        },
                                        "importeur_zip": {
                                            "type": "string",
                                            "description": "Importeur PLZ"
                                        },
                                        "importeur_city": {
                                            "type": "string",
                                            "description": "Importeur Ort"
                                        },
                                        "importeur_country": {
                                            "type": "string",
                                            "description": "Importeur Land"
                                        },
                                        "importeur_email": {
                                            "type": "string",
                                            "format": "email",
                                            "description": "Importeur E-Mail-Adresse"
                                        },
                                        "importeur_phone": {
                                            "type": "string",
                                            "description": "Importeur Telefonnummer"
                                        },
                                        "importeur_phone_country_code": {
                                            "type": "string",
                                            "description": "Importeur Telefon-Laendercode, z.B. +49"
                                        },
                                        "use_responsible_person": {
                                            "type": "boolean",
                                            "description": "Verantwortliche Person verwenden"
                                        },
                                        "responsible_person_name": {
                                            "type": "string",
                                            "description": "Name der verantwortlichen Person"
                                        },
                                        "responsible_person_street": {
                                            "type": "string",
                                            "description": "Strasse der verantwortlichen Person"
                                        },
                                        "responsible_person_zip": {
                                            "type": "string",
                                            "description": "PLZ der verantwortlichen Person"
                                        },
                                        "responsible_person_city": {
                                            "type": "string",
                                            "description": "Ort der verantwortlichen Person"
                                        },
                                        "responsible_person_country": {
                                            "type": "string",
                                            "description": "Land der verantwortlichen Person"
                                        },
                                        "responsible_person_email": {
                                            "type": "string",
                                            "format": "email",
                                            "description": "E-Mail-Adresse der verantwortlichen Person"
                                        },
                                        "responsible_person_phone": {
                                            "type": "string",
                                            "description": "Telefonnummer der verantwortlichen Person"
                                        },
                                        "responsible_person_phone_country_code": {
                                            "type": "string",
                                            "description": "Telefon-Laendercode der verantwortlichen Person, z.B. +49"
                                        },
                                        "manufactor_url": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "Vollstaendige URL der Herstellerseite"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 42,
                                    "location": "https://shop.local/api/v2/private/manufactors/42",
                                    "name": "APT Textil",
                                    "company_name": "APT Textil GmbH",
                                    "street": "Musterstrasse 1",
                                    "zip": "12345",
                                    "city": "Musterstadt",
                                    "country": "Deutschland",
                                    "firstname": "Max",
                                    "lastname": "Mustermann",
                                    "phone": "+49 123 456789",
                                    "fax": "",
                                    "email": "info@example.com",
                                    "website": "https://example.com",
                                    "info": "Interner Hinweis",
                                    "description": "Beschreibung des Herstellers",
                                    "description2": "",
                                    "show_in_block": true,
                                    "meta_name": "APT Textil",
                                    "meta_description": "Herstellerbeschreibung",
                                    "meta_keywords": "textil, apt",
                                    "logo": {
                                        "file": "firm_42_logo_apt-logo.png",
                                        "path": "images/firmlogos/firm_42_logo_apt-logo.png",
                                        "url": "https://shop.local/images/firmlogos/firm_42_logo_apt-logo.png"
                                    },
                                    "logo_product": {
                                        "file": "firm_42_logo_artikel_apt-produktlogo.png",
                                        "path": "images/firmlogos/firm_42_logo_artikel_apt-produktlogo.png",
                                        "url": "https://shop.local/images/firmlogos/firm_42_logo_artikel_apt-produktlogo.png"
                                    },
                                    "logo_category": {
                                        "file": "",
                                        "path": "",
                                        "url": ""
                                    },
                                    "durability_guarantee": {
                                        "enabled": true,
                                        "duration_years": 5,
                                        "producer_name": "APT Textil GmbH",
                                        "free_of_charge": true,
                                        "statement": {
                                            "file": "garan-erklaerung-a1b2c3.pdf",
                                            "path": "downloads/files/garan/garan-erklaerung-a1b2c3.pdf",
                                            "url": "https://shop.local/downloads/files/garan/garan-erklaerung-a1b2c3.pdf"
                                        }
                                    },
                                    "use_importeur": false,
                                    "importeur_name": "",
                                    "importeur_street": "",
                                    "importeur_zip": "",
                                    "importeur_city": "",
                                    "importeur_country": "",
                                    "importeur_email": "",
                                    "importeur_phone": "",
                                    "importeur_phone_country_code": "",
                                    "use_responsible_person": true,
                                    "responsible_person_name": "Max Mustermann",
                                    "responsible_person_street": "Musterstrasse 1",
                                    "responsible_person_zip": "12345",
                                    "responsible_person_city": "Musterstadt",
                                    "responsible_person_country": "Deutschland",
                                    "responsible_person_email": "gpsr@example.com",
                                    "responsible_person_phone": "+49 123 456789",
                                    "responsible_person_phone_country_code": "+49",
                                    "manufactor_url": "https://shop.local/apt-textil"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Herstellers abrufen.",
                "description": "Liefert Daten zu einem Hersteller.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetManufactorsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Hersteller-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "manufactors.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "manufactors.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "manufactors"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Herstellers aktualisieren.",
                "description": "Aktualisiert die Daten eines Herstellers.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutManufactorsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Hersteller-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Request-Body fuer PUT /private/manufactors/{id}. Permalinks koennen ueber die API nicht gesetzt oder geaendert werden.",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Markenname"
                                    },
                                    "company_name": {
                                        "type": "string",
                                        "description": "Offizieller Firmenname"
                                    },
                                    "street": {
                                        "type": "string",
                                        "description": "Strasse und Hausnummer"
                                    },
                                    "zip": {
                                        "type": "string",
                                        "description": "PLZ"
                                    },
                                    "city": {
                                        "type": "string",
                                        "description": "Ort"
                                    },
                                    "country": {
                                        "type": "string",
                                        "description": "Land"
                                    },
                                    "firstname": {
                                        "type": "string",
                                        "description": "Ansprechpartner Vorname"
                                    },
                                    "lastname": {
                                        "type": "string",
                                        "description": "Ansprechpartner Nachname"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "description": "Telefonnummer"
                                    },
                                    "fax": {
                                        "type": "string",
                                        "description": "Faxnummer"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "E-Mail-Adresse"
                                    },
                                    "website": {
                                        "type": "string",
                                        "format": "uri",
                                        "description": "Webseite"
                                    },
                                    "info": {
                                        "type": "string",
                                        "description": "Interne Information"
                                    },
                                    "description": {
                                        "type": "string",
                                        "description": "Beschreibung"
                                    },
                                    "description2": {
                                        "type": "string",
                                        "description": "Weitere Beschreibung"
                                    },
                                    "show_in_block": {
                                        "type": "boolean",
                                        "description": "Hersteller im Frontend-Herstellerblock anzeigen"
                                    },
                                    "meta_name": {
                                        "type": "string",
                                        "description": "Meta Title"
                                    },
                                    "meta_description": {
                                        "type": "string",
                                        "description": "Meta Description"
                                    },
                                    "meta_keywords": {
                                        "type": "string",
                                        "description": "Meta Keywords"
                                    },
                                    "logo": {
                                        "type": "object",
                                        "description": "Logo-Upload als Base64-Stream. Der Dateiname wird normalisiert, mit Hersteller-ID und Feldname gepraefixt und nach images/firmlogos/ gespeichert. Mit delete=true wird das bestehende Logo entfernt.",
                                        "properties": {
                                            "img": {
                                                "type": "string",
                                                "description": "Original-Dateiname"
                                            },
                                            "stream": {
                                                "type": "string",
                                                "format": "byte",
                                                "description": "Base64-kodierter Dateiinhalt"
                                            },
                                            "delete": {
                                                "type": "boolean",
                                                "description": "Bestehendes Logo entfernen"
                                            }
                                        }
                                    },
                                    "logo_product": {
                                        "type": "object",
                                        "description": "Logo-Upload fuer die Produktansicht als Base64-Stream. Der Dateiname wird normalisiert, mit Hersteller-ID und Feldname gepraefixt und nach images/firmlogos/ gespeichert.",
                                        "properties": {
                                            "img": {
                                                "type": "string",
                                                "description": "Original-Dateiname"
                                            },
                                            "stream": {
                                                "type": "string",
                                                "format": "byte",
                                                "description": "Base64-kodierter Dateiinhalt"
                                            },
                                            "delete": {
                                                "type": "boolean",
                                                "description": "Bestehendes Logo entfernen"
                                            }
                                        }
                                    },
                                    "logo_category": {
                                        "type": "object",
                                        "description": "Logo-Upload fuer die Produktgruppenansicht als Base64-Stream. Der Dateiname wird normalisiert, mit Hersteller-ID und Feldname gepraefixt und nach images/firmlogos/ gespeichert.",
                                        "properties": {
                                            "img": {
                                                "type": "string",
                                                "description": "Original-Dateiname"
                                            },
                                            "stream": {
                                                "type": "string",
                                                "format": "byte",
                                                "description": "Base64-kodierter Dateiinhalt"
                                            },
                                            "delete": {
                                                "type": "boolean",
                                                "description": "Bestehendes Logo entfernen"
                                            }
                                        }
                                    },
                                    "durability_guarantee": {
                                        "type": "object",
                                        "description": "Partielles Update der Standardwerte fuer die gewerbliche Haltbarkeitsgarantie (EU-GARAN). Nicht uebergebene Werte bleiben unveraendert.",
                                        "properties": {
                                            "enabled": {
                                                "type": "boolean"
                                            },
                                            "duration_years": {
                                                "type": "number",
                                                "nullable": true,
                                                "minimum": 2.5,
                                                "maximum": 99,
                                                "multipleOf": 0.5
                                            },
                                            "producer_name": {
                                                "type": "string"
                                            },
                                            "free_of_charge": {
                                                "type": "boolean"
                                            },
                                            "statement": {
                                                "type": "object",
                                                "description": "Garantieerklaerung als PDF bis 20 MB. Fuer Upload file und stream senden; mit delete=true entfernen. Reine GET-Metadaten ohne stream werden ignoriert.",
                                                "properties": {
                                                    "file": {
                                                        "type": "string"
                                                    },
                                                    "stream": {
                                                        "type": "string",
                                                        "format": "byte"
                                                    },
                                                    "delete": {
                                                        "type": "boolean"
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "use_importeur": {
                                        "type": "boolean",
                                        "description": "Importeurdaten statt Herstellerdaten verwenden"
                                    },
                                    "importeur_name": {
                                        "type": "string",
                                        "description": "Importeur Name"
                                    },
                                    "importeur_street": {
                                        "type": "string",
                                        "description": "Importeur Strasse"
                                    },
                                    "importeur_zip": {
                                        "type": "string",
                                        "description": "Importeur PLZ"
                                    },
                                    "importeur_city": {
                                        "type": "string",
                                        "description": "Importeur Ort"
                                    },
                                    "importeur_country": {
                                        "type": "string",
                                        "description": "Importeur Land"
                                    },
                                    "importeur_email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "Importeur E-Mail-Adresse"
                                    },
                                    "importeur_phone": {
                                        "type": "string",
                                        "description": "Importeur Telefonnummer"
                                    },
                                    "importeur_phone_country_code": {
                                        "type": "string",
                                        "description": "Importeur Telefon-Laendercode, z.B. +49"
                                    },
                                    "use_responsible_person": {
                                        "type": "boolean",
                                        "description": "Verantwortliche Person verwenden"
                                    },
                                    "responsible_person_name": {
                                        "type": "string",
                                        "description": "Name der verantwortlichen Person"
                                    },
                                    "responsible_person_street": {
                                        "type": "string",
                                        "description": "Strasse der verantwortlichen Person"
                                    },
                                    "responsible_person_zip": {
                                        "type": "string",
                                        "description": "PLZ der verantwortlichen Person"
                                    },
                                    "responsible_person_city": {
                                        "type": "string",
                                        "description": "Ort der verantwortlichen Person"
                                    },
                                    "responsible_person_country": {
                                        "type": "string",
                                        "description": "Land der verantwortlichen Person"
                                    },
                                    "responsible_person_email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "E-Mail-Adresse der verantwortlichen Person"
                                    },
                                    "responsible_person_phone": {
                                        "type": "string",
                                        "description": "Telefonnummer der verantwortlichen Person"
                                    },
                                    "responsible_person_phone_country_code": {
                                        "type": "string",
                                        "description": "Telefon-Laendercode der verantwortlichen Person, z.B. +49"
                                    }
                                }
                            },
                            "example": {
                                "name": "APT Textil Premium",
                                "website": "https://example.com",
                                "show_in_block": true,
                                "meta_name": "APT Textil Premium",
                                "durability_guarantee": {
                                    "enabled": true,
                                    "duration_years": 7,
                                    "producer_name": "APT Textil Premium",
                                    "free_of_charge": true
                                },
                                "use_importeur": true,
                                "importeur_name": "APT Import GmbH",
                                "importeur_email": "import@example.com",
                                "importeur_phone": "+49 911 123456",
                                "importeur_phone_country_code": "+49",
                                "use_responsible_person": true,
                                "responsible_person_name": "Erika Musterfrau",
                                "responsible_person_email": "gpsr@example.com",
                                "responsible_person_phone": "+49 911 987654",
                                "logo_product": {
                                    "img": "APT Produktlogo.png",
                                    "stream": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII="
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "manufactors.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "manufactors.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "manufactors"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Einen Hersteller loeschen.",
                "description": "Loescht einen Hersteller. Zugeordnete Produkte werden auf Hersteller-ID 0 gesetzt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteManufactorsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Hersteller-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "manufactors.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "manufactors.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/manufactors/search": {
            "get": {
                "tags": [
                    "manufactors"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Suchergebnisse fuer Hersteller",
                                    "items": {
                                        "$ref": "#/paths/~1private~1manufactors~1{id}/get/responses/200/content/application~1json/schema"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 42,
                                        "location": "https://shop.local/api/v2/private/manufactors/42",
                                        "name": "APT Textil",
                                        "company_name": "APT Textil GmbH",
                                        "street": "Musterstrasse 1",
                                        "zip": "12345",
                                        "city": "Musterstadt",
                                        "country": "Deutschland",
                                        "firstname": "Max",
                                        "lastname": "Mustermann",
                                        "phone": "+49 123 456789",
                                        "fax": "",
                                        "email": "info@example.com",
                                        "website": "https://example.com",
                                        "info": "Interner Hinweis",
                                        "description": "Beschreibung des Herstellers",
                                        "description2": "",
                                        "show_in_block": true,
                                        "meta_name": "APT Textil",
                                        "meta_description": "Herstellerbeschreibung",
                                        "meta_keywords": "textil, apt",
                                        "logo": {
                                            "file": "firm_42_logo_apt-logo.png",
                                            "path": "images/firmlogos/firm_42_logo_apt-logo.png",
                                            "url": "https://shop.local/images/firmlogos/firm_42_logo_apt-logo.png"
                                        },
                                        "logo_product": {
                                            "file": "",
                                            "path": "",
                                            "url": ""
                                        },
                                        "logo_category": {
                                            "file": "",
                                            "path": "",
                                            "url": ""
                                        },
                                        "use_importeur": false,
                                        "importeur_name": "",
                                        "importeur_street": "",
                                        "importeur_zip": "",
                                        "importeur_city": "",
                                        "importeur_country": "",
                                        "importeur_email": "",
                                        "importeur_phone": "",
                                        "importeur_phone_country_code": "",
                                        "use_responsible_person": true,
                                        "responsible_person_name": "Max Mustermann",
                                        "responsible_person_street": "Musterstrasse 1",
                                        "responsible_person_zip": "12345",
                                        "responsible_person_city": "Musterstadt",
                                        "responsible_person_country": "Deutschland",
                                        "responsible_person_email": "gpsr@example.com",
                                        "responsible_person_phone": "+49 123 456789",
                                        "responsible_person_phone_country_code": "+49",
                                        "manufactor_url": "https://shop.local/apt-textil"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Herstellern nach einem String.",
                "description": "Sucht in Herstellern nach Markenname, Ansprechpartner, PLZ, Ort oder Info.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetManufactorsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "manufactors.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "manufactors.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/multishopcustomergroups": {
            "get": {
                "tags": [
                    "multishopcustomergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_multishopcustomergroups_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "1:2",
                                            "location": "https://localhost/shop/api/v2/private/multishopcustomergroups/1?customer_group_id=2",
                                            "multishop_id": 1,
                                            "customer_group_id": 2,
                                            "multishop_location": "https://localhost/shop/api/v2/private/multishops/1",
                                            "shop_name": "Standard Shop",
                                            "server_name": "localhost",
                                            "customer_group_location": "https://localhost/shop/api/v2/private/customergroups/2",
                                            "customer_group_name": "Endkunden"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Multishopcustomergroups abrufen.",
                "description": "Liefert eine paginierte Liste fuer Multishopcustomergroups.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetMultishopcustomergroupsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "multishopcustomergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "string",
                                            "example": "1:2"
                                        },
                                        "location": {
                                            "type": "string",
                                            "example": "https://localhost/shop/api/v2/private/multishopcustomergroups/1?customer_group_id=2"
                                        },
                                        "multishop_id": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "customer_group_id": {
                                            "type": "integer",
                                            "example": 2
                                        },
                                        "multishop_location": {
                                            "type": "string",
                                            "example": "https://localhost/shop/api/v2/private/multishops/1"
                                        },
                                        "shop_name": {
                                            "type": "string",
                                            "example": "Standard Shop"
                                        },
                                        "server_name": {
                                            "type": "string",
                                            "example": "localhost"
                                        },
                                        "customer_group_location": {
                                            "type": "string",
                                            "example": "https://localhost/shop/api/v2/private/customergroups/2"
                                        },
                                        "customer_group_name": {
                                            "type": "string",
                                            "example": "Endkunden"
                                        }
                                    }
                                },
                                "example": {
                                    "multishop_id": 1,
                                    "customer_group_id": 2
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Multishopcustomergroups anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Multishopcustomergroups.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostMultishopcustomergroupsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "multishop_id",
                                    "customer_group_id"
                                ],
                                "properties": {
                                    "multishop_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "customer_group_id": {
                                        "type": "integer",
                                        "example": 2
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/multishopcustomergroups/{id}": {
            "get": {
                "tags": [
                    "multishopcustomergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "string",
                                            "example": "1:2"
                                        },
                                        "location": {
                                            "type": "string",
                                            "example": "https://localhost/shop/api/v2/private/multishopcustomergroups/1?customer_group_id=2"
                                        },
                                        "multishop_id": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "customer_group_id": {
                                            "type": "integer",
                                            "example": 2
                                        },
                                        "multishop_location": {
                                            "type": "string",
                                            "example": "https://localhost/shop/api/v2/private/multishops/1"
                                        },
                                        "shop_name": {
                                            "type": "string",
                                            "example": "Standard Shop"
                                        },
                                        "server_name": {
                                            "type": "string",
                                            "example": "localhost"
                                        },
                                        "customer_group_location": {
                                            "type": "string",
                                            "example": "https://localhost/shop/api/v2/private/customergroups/2"
                                        },
                                        "customer_group_name": {
                                            "type": "string",
                                            "example": "Endkunden"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Multishopcustomergroups Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Multishopcustomergroups.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetMultishopcustomergroupsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "multishopcustomergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Multishopcustomergroups loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Multishopcustomergroups.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteMultishopcustomergroupsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/multishopcustomergroups/search": {
            "get": {
                "tags": [
                    "multishopcustomergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_multishopcustomergroups_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "1:2",
                                            "location": "https://localhost/shop/api/v2/private/multishopcustomergroups/1?customer_group_id=2",
                                            "multishop_id": 1,
                                            "customer_group_id": 2
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Multishopcustomergroups suchen.",
                "description": "Sucht Datensaetze fuer Multishopcustomergroups anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetMultishopcustomergroupsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/multishopdomains": {
            "get": {
                "tags": [
                    "multishopdomains"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_multishopdomains_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "2:example.org",
                                            "location": "https://localhost/shop/api/v2/private/multishopdomains/2?domain=example.org",
                                            "multishop_id": 2,
                                            "domain": "example.org",
                                            "multishop_location": "https://localhost/shop/api/v2/private/multishops/2",
                                            "shop_name": "B2B Shop",
                                            "server_name": "b2b.example.com",
                                            "is_default_shop": false,
                                            "is_active": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Multishopdomains abrufen.",
                "description": "Liefert eine paginierte Liste fuer Multishopdomains.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetMultishopdomainsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "multishopdomains"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "string",
                                            "example": "2:example.org"
                                        },
                                        "location": {
                                            "type": "string",
                                            "example": "https://localhost/shop/api/v2/private/multishopdomains/2?domain=example.org"
                                        },
                                        "multishop_id": {
                                            "type": "integer",
                                            "example": 2
                                        },
                                        "domain": {
                                            "type": "string",
                                            "example": "example.org"
                                        },
                                        "multishop_location": {
                                            "type": "string",
                                            "example": "https://localhost/shop/api/v2/private/multishops/2"
                                        },
                                        "shop_name": {
                                            "type": "string",
                                            "example": "B2B Shop"
                                        },
                                        "server_name": {
                                            "type": "string",
                                            "example": "b2b.example.com"
                                        },
                                        "is_default_shop": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "is_active": {
                                            "type": "boolean",
                                            "example": true
                                        }
                                    }
                                },
                                "example": {
                                    "multishop_id": 2,
                                    "domain": "example.org"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Multishopdomains anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Multishopdomains.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostMultishopdomainsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "multishop_id",
                                    "domain"
                                ],
                                "properties": {
                                    "multishop_id": {
                                        "type": "integer",
                                        "example": 2
                                    },
                                    "domain": {
                                        "type": "string",
                                        "example": "example.org"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/multishopdomains/{id}": {
            "get": {
                "tags": [
                    "multishopdomains"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "string",
                                            "example": "2:example.org"
                                        },
                                        "location": {
                                            "type": "string",
                                            "example": "https://localhost/shop/api/v2/private/multishopdomains/2?domain=example.org"
                                        },
                                        "multishop_id": {
                                            "type": "integer",
                                            "example": 2
                                        },
                                        "domain": {
                                            "type": "string",
                                            "example": "example.org"
                                        },
                                        "multishop_location": {
                                            "type": "string",
                                            "example": "https://localhost/shop/api/v2/private/multishops/2"
                                        },
                                        "shop_name": {
                                            "type": "string",
                                            "example": "B2B Shop"
                                        },
                                        "server_name": {
                                            "type": "string",
                                            "example": "b2b.example.com"
                                        },
                                        "is_default_shop": {
                                            "type": "boolean",
                                            "example": false
                                        },
                                        "is_active": {
                                            "type": "boolean",
                                            "example": true
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Multishopdomains Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Multishopdomains.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetMultishopdomainsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "multishopdomains"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Multishopdomains loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Multishopdomains.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteMultishopdomainsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/multishopdomains/search": {
            "get": {
                "tags": [
                    "multishopdomains"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_multishopdomains_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "2:example.org",
                                            "location": "https://localhost/shop/api/v2/private/multishopdomains/2?domain=example.org",
                                            "multishop_id": 2,
                                            "domain": "example.org"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Multishopdomains suchen.",
                "description": "Sucht Datensaetze fuer Multishopdomains anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetMultishopdomainsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/multishops": {
            "get": {
                "tags": [
                    "multishops"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_multishops_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/multishops/1",
                                            "shop_name": "Default shop",
                                            "server_name": "localhost",
                                            "is_default_shop": true,
                                            "is_active": true,
                                            "is_disabled": false,
                                            "shop_icon": "",
                                            "shop_icon_url": null,
                                            "firm_logo": "",
                                            "firm_logo_url": null
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Multishops abrufen.",
                "description": "Liefert eine paginierte Liste fuer Multishops.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetMultishopsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/multishops/{id}": {
            "get": {
                "tags": [
                    "multishops"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "get_multishops_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/multishops/1",
                                        "shop_name": "Default shop",
                                        "server_name": "localhost",
                                        "is_default_shop": true,
                                        "is_active": true,
                                        "is_disabled": false,
                                        "server_path": "/shop/",
                                        "server_ssl": true,
                                        "default_lang_id": 1,
                                        "default_language_location": "https://localhost/shop/api/v2/private/languages/1",
                                        "template_id": 1,
                                        "domains": [
                                            {
                                                "domain": "example.org",
                                                "location": "https://localhost/shop/api/v2/private/multishopdomains/1?domain=example.org"
                                            }
                                        ],
                                        "customer_groups": [
                                            {
                                                "customer_group_id": 1,
                                                "customer_group_name": "Standard",
                                                "location": "https://localhost/shop/api/v2/private/multishopcustomergroups/1?customer_group_id=1",
                                                "customer_group_location": "https://localhost/shop/api/v2/private/customergroups/1"
                                            }
                                        ],
                                        "social": {
                                            "facebook": "",
                                            "twitter": "",
                                            "youtube": "",
                                            "google": "",
                                            "instagram": ""
                                        },
                                        "meta": {
                                            "title": "Default shop",
                                            "keywords": "",
                                            "description": "",
                                            "robots": "",
                                            "show_shopname_in_meta_title": false
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Multishops Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Multishops.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetMultishopsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/multishops/search": {
            "get": {
                "tags": [
                    "multishops"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_multishops_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/multishops/1",
                                            "shop_name": "Default shop",
                                            "server_name": "localhost",
                                            "is_default_shop": true,
                                            "is_active": true,
                                            "is_disabled": false,
                                            "shop_icon": "",
                                            "shop_icon_url": null,
                                            "firm_logo": "",
                                            "firm_logo_url": null
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Multishops suchen.",
                "description": "Sucht Datensaetze fuer Multishops anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetMultishopsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/news": {
            "get": {
                "tags": [
                    "news"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "description": "Id des Objects",
                                                "example": 1
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri",
                                                "description": "API Url zum Object",
                                                "example": "https://localhost/shop/api/v2/private/news/1"
                                            },
                                            "headline": {
                                                "type": "string",
                                                "description": "News-Headline",
                                                "example": "Neue Produkte verfuegbar"
                                            },
                                            "created_at": {
                                                "type": "string",
                                                "format": "date-time",
                                                "description": "Datum und Uhrzeit des News-Eintrags",
                                                "example": "2026-06-11 10:30:00"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/news/1",
                                        "headline": "Neue Produkte verfuegbar",
                                        "created_at": "2026-06-11 10:30:00"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere News abrufen.",
                "description": "Liefert Daten fuer mehrere News.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetNewsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "headline": {
                                    "type": "string"
                                },
                                "content": {
                                    "type": "string"
                                },
                                "year": {
                                    "type": "integer"
                                }
                            }
                        },
                        "description": "Filtert nach Headline, Inhalt oder Jahr"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "news.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "news.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "news"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "News-Eintrag erstellen.",
                "description": "Erstellt einen News-Eintrag.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostNewsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "headline"
                                ],
                                "properties": {
                                    "headline": {
                                        "type": "string",
                                        "description": "News-Headline",
                                        "example": "Neue Produkte verfuegbar"
                                    },
                                    "content": {
                                        "type": "string",
                                        "description": "News-Inhalt",
                                        "example": "Ab sofort sind neue Produkte im Shop verfuegbar."
                                    },
                                    "created_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Datum und Uhrzeit des News-Eintrags",
                                        "example": "2026-06-11 10:30:00"
                                    }
                                }
                            },
                            "example": {
                                "headline": "Neue Produkte verfuegbar",
                                "content": "Ab sofort sind neue Produkte im Shop verfuegbar.",
                                "created_at": "2026-06-11 10:30:00"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "news.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "news.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/news/{id}": {
            "get": {
                "tags": [
                    "news"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": 1
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Object",
                                            "example": "https://localhost/shop/api/v2/private/news/1"
                                        },
                                        "headline": {
                                            "type": "string",
                                            "description": "News-Headline",
                                            "example": "Neue Produkte verfuegbar"
                                        },
                                        "content": {
                                            "type": "string",
                                            "description": "News-Inhalt",
                                            "example": "Ab sofort sind neue Produkte im Shop verfuegbar."
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "description": "Datum und Uhrzeit des News-Eintrags",
                                            "example": "2026-06-11 10:30:00"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/news/1",
                                    "headline": "Neue Produkte verfuegbar",
                                    "content": "Ab sofort sind neue Produkte im Shop verfuegbar.",
                                    "created_at": "2026-06-11 10:30:00"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines News-Eintrags abrufen.",
                "description": "Liefert Daten zu einem News-Eintrag.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetNewsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "News-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "news.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "news.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "news"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "News-Eintrag aktualisieren.",
                "description": "Aktualisiert einen News-Eintrag.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutNewsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "News-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "headline": {
                                        "type": "string",
                                        "description": "News-Headline",
                                        "example": "Neue Produkte verfuegbar"
                                    },
                                    "content": {
                                        "type": "string",
                                        "description": "News-Inhalt",
                                        "example": "Ab sofort sind neue Produkte im Shop verfuegbar."
                                    },
                                    "created_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Datum und Uhrzeit des News-Eintrags",
                                        "example": "2026-06-11 10:30:00"
                                    }
                                }
                            },
                            "example": {
                                "headline": "Aktualisierte News-Headline",
                                "content": "Der News-Inhalt wurde aktualisiert."
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "news.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "news.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "news"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "News-Eintrag loeschen.",
                "description": "Loescht einen News-Eintrag.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteNewsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "News-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "news.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "news.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/news/search": {
            "get": {
                "tags": [
                    "news"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "v2/docs/returns/News/get_news_entry.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/news/1",
                                        "headline": "Neue Produkte verfuegbar",
                                        "content": "Ab sofort sind neue Produkte im Shop verfuegbar.",
                                        "created_at": "2026-06-11 10:30:00"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in News nach einem String.",
                "description": "Sucht in News nach Headline.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetNewsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "news.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "news.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletterrecipients": {
            "get": {
                "tags": [
                    "newsletterrecipients"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "oneOf": [
                                        {
                                            "description": "Kurzform (Standardausgabe)",
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 123
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "format": "uri",
                                                        "example": "https://localhost/shop/api/v2/private/newsletterrecipients/123"
                                                    },
                                                    "email": {
                                                        "type": "string",
                                                        "format": "email",
                                                        "example": "kontakt@muster-gmbh.de"
                                                    },
                                                    "aktiv": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "status": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "status_label": {
                                                        "type": "string",
                                                        "example": "active"
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    }
                                                }
                                            }
                                        },
                                        {
                                            "description": "Detailform (wenn ?details=1)",
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1private~1newsletterrecipients~1{id}/get/responses/200/content/application~1json/schema"
                                            }
                                        }
                                    ]
                                },
                                "example": [
                                    {
                                        "id": 1023,
                                        "location": "https://api.meinshop.de/api/v2/private/newsletterrecipients/1023",
                                        "email": "kontakt@muster-gmbh.de",
                                        "aktiv": 1,
                                        "status": 1,
                                        "status_label": "active",
                                        "multishop_id": 1
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Mehrere Newsletterempfaenger abrufen.",
                "description": "Liefert Newsletterempfaenger. Optional kann nach Status, Multishop und Sprache gefiltert werden.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetNewsletterrecipientsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Status, 0=inaktiv, 1=aktiv, 2=abgemeldet, 3=hard-bounce, 4=soft-bounce"
                    },
                    {
                        "name": "multishop_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Id des Multishop"
                    },
                    {
                        "name": "lang_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Id der Sprache"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "aktiv": {
                                    "type": "integer"
                                },
                                "status": {
                                    "type": "integer"
                                },
                                "multishop_id": {
                                    "type": "integer"
                                },
                                "lang_id": {
                                    "type": "integer"
                                }
                            }
                        },
                        "description": "Rueckwaertskompatibler Filter"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletterrecipients.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletterrecipients.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "newsletterrecipients"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Newsletterempfaenger erstellen.",
                "description": "Erstellt einen Newsletterempfaenger.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostNewsletterrecipientsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "E-Mail-Adresse"
                                    },
                                    "firstname": {
                                        "type": "string",
                                        "description": "Vorname"
                                    },
                                    "lastname": {
                                        "type": "string",
                                        "description": "Nachname"
                                    },
                                    "datetime": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Zeitpunkt der Registrierung oder Erfassung"
                                    },
                                    "datetime_doptin": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Zeitpunkt der Zustimmung (Double OptIn)"
                                    },
                                    "datetime_unsubscribed": {
                                        "type": "string",
                                        "format": "date-time",
                                        "nullable": true,
                                        "description": "Zeitpunkt der Abmeldung"
                                    },
                                    "status": {
                                        "type": "integer",
                                        "description": "Status 0=inaktiv, 1=aktiv, 2=abgemeldet, 3=hard-bounce, 4=soft-bounce"
                                    },
                                    "aktiv": {
                                        "type": "integer",
                                        "description": "Rueckwaertskompatibler Statuswert"
                                    },
                                    "lang_id": {
                                        "type": "integer",
                                        "description": "Sprach-ID"
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Multishop-ID"
                                    },
                                    "is_temporary": {
                                        "type": "boolean",
                                        "description": "Temporarer Empfaenger"
                                    }
                                },
                                "required": [
                                    "email"
                                ]
                            },
                            "example": {
                                "email": "kontakt@muster-gmbh.de",
                                "firstname": "Max",
                                "lastname": "Muster",
                                "multishop_id": 1,
                                "lang_id": 1,
                                "datetime": "2023-06-15 12:01:02",
                                "datetime_doptin": "2023-06-15 12:01:02",
                                "status": 1
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletterrecipients.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletterrecipients.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletterrecipients/{id}": {
            "get": {
                "tags": [
                    "newsletterrecipients"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Eindeutige NewsletterRecipient-ID"
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "Vollstaendige API-URL des Objektes"
                                        },
                                        "email": {
                                            "type": "string",
                                            "format": "email",
                                            "description": "E-Mail-Adresse"
                                        },
                                        "firstname": {
                                            "type": "string",
                                            "description": "Vorname"
                                        },
                                        "lastname": {
                                            "type": "string",
                                            "description": "Nachname"
                                        },
                                        "datetime": {
                                            "type": "string",
                                            "format": "date-time",
                                            "description": "Zeitpunkt der Registrierung oder Erfassung"
                                        },
                                        "datetime_doptin": {
                                            "type": "string",
                                            "format": "date-time",
                                            "description": "Zeitpunkt der Zustimmung (Double OptIn)"
                                        },
                                        "datetime_unsubscribed": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true,
                                            "description": "Zeitpunkt der Abmeldung"
                                        },
                                        "aktiv": {
                                            "type": "integer",
                                            "description": "Rueckwaertskompatibler Statuswert"
                                        },
                                        "status": {
                                            "type": "integer",
                                            "description": "Status 0=inaktiv, 1=aktiv, 2=abgemeldet, 3=hard-bounce, 4=soft-bounce"
                                        },
                                        "status_label": {
                                            "type": "string",
                                            "description": "Lesbarer Statusname"
                                        },
                                        "lang_id": {
                                            "type": "integer",
                                            "description": "Sprach-ID"
                                        },
                                        "multishop_id": {
                                            "type": "integer",
                                            "description": "Multishop-ID"
                                        },
                                        "is_temporary": {
                                            "type": "boolean",
                                            "description": "Temporarer Empfaenger"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1023,
                                    "location": "https://api.meinshop.de/api/v2/private/newsletterrecipients/1023",
                                    "email": "kontakt@muster-gmbh.de",
                                    "firstname": "Max",
                                    "lastname": "Muster",
                                    "datetime": "2023-06-15 12:01:02",
                                    "datetime_doptin": "2023-06-15 12:01:02",
                                    "datetime_unsubscribed": null,
                                    "aktiv": 1,
                                    "status": 1,
                                    "status_label": "active",
                                    "lang_id": 1,
                                    "multishop_id": 1,
                                    "is_temporary": false
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Newsletterempfaengers abrufen.",
                "description": "Liefert Daten zu einem Newsletterempfaenger.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetNewsletterrecipientsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "NewsletterRecipient-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletterrecipients.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletterrecipients.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "newsletterrecipients"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Newsletterempfaengers aktualisieren.",
                "description": "Aktualisiert die Daten eines Newsletterempfaengers.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutNewsletterrecipientsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "NewsletterRecipient-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "E-Mail-Adresse"
                                    },
                                    "firstname": {
                                        "type": "string",
                                        "description": "Vorname"
                                    },
                                    "lastname": {
                                        "type": "string",
                                        "description": "Nachname"
                                    },
                                    "datetime": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Zeitpunkt der Registrierung oder Erfassung"
                                    },
                                    "datetime_doptin": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Zeitpunkt der Zustimmung (Double OptIn)"
                                    },
                                    "datetime_unsubscribed": {
                                        "type": "string",
                                        "format": "date-time",
                                        "nullable": true,
                                        "description": "Zeitpunkt der Abmeldung"
                                    },
                                    "status": {
                                        "type": "integer",
                                        "description": "Status 0=inaktiv, 1=aktiv, 2=abgemeldet, 3=hard-bounce, 4=soft-bounce"
                                    },
                                    "aktiv": {
                                        "type": "integer",
                                        "description": "Rueckwaertskompatibler Statuswert"
                                    },
                                    "lang_id": {
                                        "type": "integer",
                                        "description": "Sprach-ID"
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Multishop-ID"
                                    },
                                    "is_temporary": {
                                        "type": "boolean",
                                        "description": "Temporarer Empfaenger"
                                    }
                                }
                            },
                            "example": {
                                "firstname": "Max",
                                "lastname": "Muster",
                                "lang_id": 1,
                                "status": 1
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletterrecipients.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletterrecipients.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "newsletterrecipients"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Newsletterempfaengers loeschen.",
                "description": "Loescht die Daten eines Newsletterempfaengers.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteNewsletterrecipientsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "NewsletterRecipient-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletterrecipients.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletterrecipients.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletterrecipients/search": {
            "get": {
                "tags": [
                    "newsletterrecipients"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "#/paths/~1private~1newsletterrecipients~1{id}/get/responses/200/content/application~1json/schema"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1023,
                                        "location": "https://api.meinshop.de/api/v2/private/newsletterrecipients/1023",
                                        "email": "kontakt@muster-gmbh.de",
                                        "firstname": "Max",
                                        "lastname": "Muster",
                                        "datetime": "2023-06-15 12:01:02",
                                        "datetime_doptin": "2023-06-15 12:01:02",
                                        "datetime_unsubscribed": null,
                                        "aktiv": 1,
                                        "status": 1,
                                        "status_label": "active",
                                        "lang_id": 1,
                                        "multishop_id": 1,
                                        "is_temporary": false
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Newsletterempfaengern nach einem String",
                "description": "Sucht in Newsletterempfaengern nach Name oder E-Mail-Adresse.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetNewsletterrecipientsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Status, 0=inaktiv, 1=aktiv, 2=abgemeldet, 3=hard-bounce, 4=soft-bounce"
                    },
                    {
                        "name": "multishop_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Id des Multishop"
                    },
                    {
                        "name": "lang_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Id der Sprache"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletterrecipients.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletterrecipients.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletterrecipients/subscribe": {
            "post": {
                "tags": [
                    "newsletterrecipients"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Newsletterempfaenger anmelden.",
                "description": "Erstellt einen Empfaenger oder reaktiviert einen vorhandenen Empfaenger fuer E-Mail und Multishop.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostNewsletterrecipientsSubscribePrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "E-Mail-Adresse"
                                    },
                                    "firstname": {
                                        "type": "string",
                                        "description": "Vorname"
                                    },
                                    "lastname": {
                                        "type": "string",
                                        "description": "Nachname"
                                    },
                                    "lang_id": {
                                        "type": "integer",
                                        "description": "Sprach-ID"
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Multishop-ID"
                                    },
                                    "datetime_doptin": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Zeitpunkt der Zustimmung. Wenn leer, wird der aktuelle Zeitpunkt gesetzt."
                                    }
                                },
                                "required": [
                                    "email"
                                ]
                            },
                            "example": {
                                "email": "kontakt@muster-gmbh.de",
                                "firstname": "Max",
                                "lastname": "Muster",
                                "multishop_id": 1,
                                "lang_id": 1
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletterrecipients.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletterrecipients.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletterrecipients/{id}/send_double_optin": {
            "post": {
                "tags": [
                    "newsletterrecipients"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "sent": {
                                            "type": "boolean",
                                            "description": "Gibt an, ob die Double-Opt-In-Mail versendet wurde"
                                        },
                                        "recipient_id": {
                                            "type": "integer",
                                            "description": "NewsletterRecipient-ID"
                                        },
                                        "email": {
                                            "type": "string",
                                            "format": "email",
                                            "description": "E-Mail-Adresse des Empfaengers"
                                        }
                                    }
                                },
                                "example": {
                                    "sent": true,
                                    "recipient_id": 1023,
                                    "email": "kontakt@muster-gmbh.de"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Double-Opt-In-Mail versenden.",
                "description": "Versendet die Double-Opt-In-Mail fuer einen wartenden Newsletterempfaenger. Falls der Bestaetigungs-Token fehlt, wird er automatisch gesetzt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostNewsletterrecipientsSend_double_optinPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "NewsletterRecipient-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletterrecipients.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletterrecipients.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletterrecipients/{id}/activate": {
            "put": {
                "tags": [
                    "newsletterrecipients"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Newsletterempfaenger aktivieren.",
                "description": "Setzt den Status auf aktiv und schreibt das Double-Opt-In-Datum, falls es noch fehlt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutNewsletterrecipientsActivatePrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "NewsletterRecipient-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletterrecipients.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletterrecipients.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletterrecipients/{id}/unsubscribe": {
            "put": {
                "tags": [
                    "newsletterrecipients"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Newsletterempfaenger abmelden.",
                "description": "Setzt den Status auf abgemeldet und schreibt das Abmeldedatum.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutNewsletterrecipientsUnsubscribePrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "NewsletterRecipient-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "datetime_unsubscribed": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Zeitpunkt der Abmeldung. Wenn leer, wird der aktuelle Zeitpunkt gesetzt."
                                    }
                                }
                            },
                            "example": {
                                "datetime_unsubscribed": "2023-06-20 09:30:00"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletterrecipients.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletterrecipients.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletterrecipients/{id}/bounce": {
            "put": {
                "tags": [
                    "newsletterrecipients"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Newsletterempfaenger als Bounce markieren.",
                "description": "Setzt den Status auf hard-bounce oder soft-bounce.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutNewsletterrecipientsBouncePrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "NewsletterRecipient-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "type": {
                                        "type": "string",
                                        "enum": [
                                            "hard",
                                            "soft"
                                        ],
                                        "description": "Bounce-Art"
                                    },
                                    "status": {
                                        "type": "integer",
                                        "enum": [
                                            3,
                                            4
                                        ],
                                        "description": "Alternativ zur Bounce-Art: 3=hard-bounce, 4=soft-bounce"
                                    }
                                }
                            },
                            "example": {
                                "type": "hard"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletterrecipients.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletterrecipients.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletters": {
            "get": {
                "tags": [
                    "newsletters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "oneOf": [
                                        {
                                            "description": "Kurzform",
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 42
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "format": "uri",
                                                        "example": "https://api.meinshop.de/api/v2/private/newsletters/42"
                                                    },
                                                    "subject": {
                                                        "type": "string",
                                                        "example": "Sommer-Angebote"
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "send": {
                                                        "type": "integer",
                                                        "example": 0
                                                    },
                                                    "status": {
                                                        "type": "string",
                                                        "example": "draft"
                                                    },
                                                    "delivery_status": {
                                                        "type": "string",
                                                        "example": "scheduled"
                                                    },
                                                    "delivery_auto_continue": {
                                                        "type": "boolean",
                                                        "example": true
                                                    },
                                                    "scheduled_at": {
                                                        "type": "string",
                                                        "nullable": true,
                                                        "example": "2026-07-21 10:00:00"
                                                    },
                                                    "datetime_created": {
                                                        "type": "string",
                                                        "example": "2026-06-07 10:00:00"
                                                    }
                                                }
                                            }
                                        },
                                        {
                                            "description": "Detailform mit ?details=1",
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1private~1newsletters~1{id}/get/responses/200/content/application~1json/schema"
                                            }
                                        }
                                    ]
                                },
                                "example": [
                                    {
                                        "id": 42,
                                        "location": "https://api.meinshop.de/api/v2/private/newsletters/42",
                                        "subject": "Sommer-Angebote",
                                        "multishop_id": 1,
                                        "send": 0,
                                        "status": "scheduled",
                                        "delivery_status": "scheduled",
                                        "delivery_auto_continue": true,
                                        "scheduled_at": "2026-07-21 10:00:00",
                                        "delivery_started_at": null,
                                        "delivery_completed_at": null,
                                        "delivery_error": null,
                                        "datetime_created": "2026-06-07 10:00:00",
                                        "datetime_sent": null,
                                        "recipient_count": 0,
                                        "open_count": 0,
                                        "click_count": 0,
                                        "unsubscribe_count": 0,
                                        "soft_bounce_count": 0,
                                        "hard_bounce_count": 0,
                                        "utm_campaign": "sommer_2026",
                                        "send_to_group": 0,
                                        "marketing_enabled": true
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Mehrere Newsletter abrufen.",
                "description": "Liefert Newsletter. Optional kann nach Versandstatus, Multishop und Suchbegriff gefiltert werden.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetNewslettersPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben"
                    },
                    {
                        "name": "send",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Versandstatus, 0=Entwurf, 1=versendet"
                    },
                    {
                        "name": "delivery_status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Zustellstatus: draft, scheduled, sending, sent, failed oder cancelled"
                    },
                    {
                        "name": "multishop_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Id des Multishop"
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff fuer den Betreff"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletters.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletters.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "newsletters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Newsletter erstellen.",
                "description": "Erstellt einen Newsletter-Entwurf.\n\n\u26a0\ufe0f **Rate Limit:** Max. 1000 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostNewslettersPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "subject": {
                                        "type": "string",
                                        "description": "E-Mail-Betreff. Optional, wenn template_id gesetzt ist."
                                    },
                                    "template_id": {
                                        "type": "integer",
                                        "description": "Optionale Newsletter-Vorlagen-ID. Betreff, HTML, Text und Multishop werden aus der Vorlage uebernommen und koennen durch explizite Felder ueberschrieben werden."
                                    },
                                    "content_html": {
                                        "type": "string",
                                        "description": "HTML-Inhalt"
                                    },
                                    "content_text": {
                                        "type": "string",
                                        "description": "Text-Inhalt"
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Multishop-ID"
                                    },
                                    "utm_campaign": {
                                        "type": "string",
                                        "description": "UTM-Kampagnenparameter"
                                    }
                                }
                            },
                            "example": {
                                "template_id": 12,
                                "subject": "Sommer-Angebote",
                                "content_html": "<h1>Sommer-Angebote</h1><p>Hallo {VORNAME}, hier sind unsere Angebote.</p><p><a href=\"https://www.meinshop.de/sommer\">Jetzt ansehen</a></p>",
                                "content_text": "Hallo {VORNAME}, hier sind unsere Angebote: https://www.meinshop.de/sommer",
                                "multishop_id": 1,
                                "utm_campaign": "sommer_2026"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletters.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletters.create"
                ],
                "x-ratelimit": {
                    "limit": 1000,
                    "period": "hour",
                    "description": "Maximal 1000 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletters/{id}": {
            "get": {
                "tags": [
                    "newsletters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Eindeutige Newsletter-ID"
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "Vollstaendige API-URL des Objektes"
                                        },
                                        "subject": {
                                            "type": "string",
                                            "description": "E-Mail-Betreff"
                                        },
                                        "multishop_id": {
                                            "type": "integer",
                                            "description": "Multishop-ID"
                                        },
                                        "send": {
                                            "type": "integer",
                                            "description": "Versandstatus 0=Entwurf, 1=versendet"
                                        },
                                        "status": {
                                            "type": "string",
                                            "description": "Lesbarer Versandstatus"
                                        },
                                        "delivery_status": {
                                            "type": "string",
                                            "enum": [
                                                "draft",
                                                "scheduled",
                                                "sending",
                                                "sent",
                                                "failed",
                                                "cancelled"
                                            ],
                                            "description": "Status des geplanten oder laufenden Versands"
                                        },
                                        "delivery_auto_continue": {
                                            "type": "boolean",
                                            "description": "Der Minuten-Cron setzt einen laufenden Versand automatisch fort"
                                        },
                                        "scheduled_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true,
                                            "description": "Geplanter Versandzeitpunkt"
                                        },
                                        "delivery_started_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true,
                                            "description": "Start des Batchversands"
                                        },
                                        "delivery_completed_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true,
                                            "description": "Abschluss des Batchversands"
                                        },
                                        "delivery_error": {
                                            "type": "string",
                                            "nullable": true,
                                            "description": "Letzter Fehler des Versandvorgangs"
                                        },
                                        "datetime_created": {
                                            "type": "string",
                                            "format": "date-time",
                                            "description": "Erstellzeitpunkt"
                                        },
                                        "datetime_sent": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true,
                                            "description": "Versandzeitpunkt"
                                        },
                                        "recipient_count": {
                                            "type": "integer",
                                            "description": "Anzahl erfolgreich versendeter Empfaenger"
                                        },
                                        "open_count": {
                                            "type": "integer",
                                            "description": "Anzahl Oeffnungen"
                                        },
                                        "click_count": {
                                            "type": "integer",
                                            "description": "Anzahl Klicks"
                                        },
                                        "unsubscribe_count": {
                                            "type": "integer",
                                            "description": "Anzahl Abmeldungen"
                                        },
                                        "soft_bounce_count": {
                                            "type": "integer",
                                            "description": "Anzahl Soft-Bounces"
                                        },
                                        "hard_bounce_count": {
                                            "type": "integer",
                                            "description": "Anzahl Hard-Bounces"
                                        },
                                        "utm_campaign": {
                                            "type": "string",
                                            "description": "UTM-Kampagnenparameter"
                                        },
                                        "send_to_group": {
                                            "type": "integer",
                                            "description": "Empfaengergruppe, 0=Newsletterempfaenger"
                                        },
                                        "marketing_enabled": {
                                            "type": "boolean",
                                            "description": "Nur Kunden mit Marketingeinwilligung"
                                        },
                                        "content_html": {
                                            "type": "string",
                                            "description": "HTML-Inhalt"
                                        },
                                        "content_html_tracked": {
                                            "type": "string",
                                            "description": "HTML-Inhalt mit Trackinglinks"
                                        },
                                        "content_text": {
                                            "type": "string",
                                            "description": "Text-Inhalt"
                                        },
                                        "stats": {
                                            "$ref": "#/paths/~1private~1newsletters~1{id}~1stats/get/responses/200/content/application~1json/schema"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 42,
                                    "location": "https://api.meinshop.de/api/v2/private/newsletters/42",
                                    "subject": "Sommer-Angebote",
                                    "multishop_id": 1,
                                    "send": 0,
                                    "status": "scheduled",
                                    "delivery_status": "scheduled",
                                    "delivery_auto_continue": true,
                                    "scheduled_at": "2026-07-21 10:00:00",
                                    "delivery_started_at": null,
                                    "delivery_completed_at": null,
                                    "delivery_error": null,
                                    "datetime_created": "2026-06-07 10:00:00",
                                    "datetime_sent": null,
                                    "recipient_count": 0,
                                    "open_count": 0,
                                    "click_count": 0,
                                    "unsubscribe_count": 0,
                                    "soft_bounce_count": 0,
                                    "hard_bounce_count": 0,
                                    "utm_campaign": "sommer_2026",
                                    "send_to_group": 0,
                                    "marketing_enabled": true,
                                    "content_html": "<h1>Sommer-Angebote</h1>",
                                    "content_html_tracked": "",
                                    "content_text": "Sommer-Angebote",
                                    "stats": {
                                        "newsletter_id": 42,
                                        "recipient_count": 0,
                                        "open_count": 0,
                                        "click_count": 0,
                                        "unsubscribe_count": 0,
                                        "soft_bounce_count": 0,
                                        "hard_bounce_count": 0,
                                        "open_rate": null,
                                        "click_rate": null,
                                        "click_to_open_rate": null
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Newsletters abrufen.",
                "description": "Liefert Daten zu einem Newsletter inklusive Inhalt und Versandstatistik.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetNewslettersDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Newsletter-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletters.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletters.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "newsletters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Newsletters aktualisieren.",
                "description": "Aktualisiert die Daten eines Newsletter-Entwurfs.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutNewslettersDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Newsletter-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "subject": {
                                        "type": "string",
                                        "description": "E-Mail-Betreff"
                                    },
                                    "template_id": {
                                        "type": "integer",
                                        "description": "Optionale Newsletter-Vorlagen-ID. Betreff, HTML, Text und Multishop werden aus der Vorlage uebernommen und koennen durch explizite Felder ueberschrieben werden."
                                    },
                                    "content_html": {
                                        "type": "string",
                                        "description": "HTML-Inhalt"
                                    },
                                    "content_text": {
                                        "type": "string",
                                        "description": "Text-Inhalt"
                                    },
                                    "content_html_tracked": {
                                        "type": "string",
                                        "description": "HTML-Inhalt mit Trackinglinks"
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Multishop-ID"
                                    },
                                    "utm_campaign": {
                                        "type": "string",
                                        "description": "UTM-Kampagnenparameter"
                                    },
                                    "send": {
                                        "type": "integer",
                                        "description": "Versandstatus 0=Entwurf, 1=versendet"
                                    },
                                    "datetime_created": {
                                        "type": "string",
                                        "format": "date-time"
                                    },
                                    "datetime_sent": {
                                        "type": "string",
                                        "format": "date-time",
                                        "nullable": true
                                    },
                                    "send_to_group": {
                                        "type": "integer"
                                    },
                                    "marketing_enabled": {
                                        "type": "boolean"
                                    }
                                }
                            },
                            "example": {
                                "template_id": 12,
                                "subject": "Sommer-Angebote aktualisiert",
                                "utm_campaign": "sommer_2026_update"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletters.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletters.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "newsletters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Newsletter loeschen.",
                "description": "Loescht einen Newsletter inklusive Tracking- und Linkdaten.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteNewslettersDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Newsletter-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletters.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletters.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletters/{id}/stats": {
            "get": {
                "tags": [
                    "newsletters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "newsletter_id": {
                                            "type": "integer"
                                        },
                                        "recipient_count": {
                                            "type": "integer"
                                        },
                                        "open_count": {
                                            "type": "integer"
                                        },
                                        "click_count": {
                                            "type": "integer"
                                        },
                                        "unsubscribe_count": {
                                            "type": "integer"
                                        },
                                        "soft_bounce_count": {
                                            "type": "integer"
                                        },
                                        "hard_bounce_count": {
                                            "type": "integer"
                                        },
                                        "open_rate": {
                                            "type": "number",
                                            "nullable": true
                                        },
                                        "click_rate": {
                                            "type": "number",
                                            "nullable": true
                                        },
                                        "click_to_open_rate": {
                                            "type": "number",
                                            "nullable": true
                                        }
                                    }
                                },
                                "example": {
                                    "newsletter_id": 42,
                                    "recipient_count": 120,
                                    "open_count": 54,
                                    "click_count": 18,
                                    "unsubscribe_count": 2,
                                    "soft_bounce_count": 1,
                                    "hard_bounce_count": 0,
                                    "open_rate": 45,
                                    "click_rate": 15,
                                    "click_to_open_rate": 33.33
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Statistik eines Newsletters abrufen.",
                "description": "Liefert kompakte KPI-Daten wie Oeffnungen, Klicks, Abmeldungen und Bounces.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetNewslettersStatsPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Newsletter-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletters.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletters.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletters/{id}/delivery_status": {
            "get": {
                "tags": [
                    "newsletters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "newsletter_id": {
                                            "type": "integer"
                                        },
                                        "delivery_status": {
                                            "type": "string",
                                            "enum": [
                                                "draft",
                                                "scheduled",
                                                "sending",
                                                "sent",
                                                "failed",
                                                "cancelled"
                                            ]
                                        },
                                        "auto_continue": {
                                            "type": "boolean"
                                        },
                                        "scheduled_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_started_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_completed_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_error": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "pending": {
                                            "type": "integer"
                                        },
                                        "processing": {
                                            "type": "integer"
                                        },
                                        "sent": {
                                            "type": "integer"
                                        },
                                        "failed": {
                                            "type": "integer"
                                        },
                                        "skipped": {
                                            "type": "integer"
                                        },
                                        "remaining": {
                                            "type": "integer"
                                        },
                                        "batch": {
                                            "type": "object",
                                            "properties": {
                                                "processed": {
                                                    "type": "integer"
                                                },
                                                "sent": {
                                                    "type": "integer"
                                                },
                                                "failed": {
                                                    "type": "integer"
                                                },
                                                "skipped": {
                                                    "type": "integer"
                                                },
                                                "hard_bounces": {
                                                    "type": "integer"
                                                },
                                                "soft_bounces": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "newsletter_id": 42,
                                    "delivery_status": "sending",
                                    "auto_continue": true,
                                    "scheduled_at": "2026-07-21 10:00:00",
                                    "delivery_started_at": "2026-07-21 10:00:31",
                                    "delivery_completed_at": null,
                                    "delivery_error": null,
                                    "total": 120,
                                    "pending": 70,
                                    "processing": 0,
                                    "sent": 49,
                                    "failed": 1,
                                    "skipped": 0,
                                    "remaining": 70
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Versandstatus eines Newsletters abrufen.",
                "description": "Liefert Planungszeitpunkt und Fortschritt der persistenten Versandwarteschlange.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetNewslettersDelivery_statusPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Newsletter-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletters.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletters.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletters/{id}/tracking": {
            "get": {
                "tags": [
                    "newsletters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "items",
                                        "meta"
                                    ],
                                    "properties": {
                                        "items": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "required": [
                                                    "recipient_id",
                                                    "recipient_type",
                                                    "email",
                                                    "name",
                                                    "delivery_status",
                                                    "opened",
                                                    "open_count",
                                                    "clicked",
                                                    "click_count",
                                                    "clicks"
                                                ],
                                                "properties": {
                                                    "recipient_id": {
                                                        "type": "integer"
                                                    },
                                                    "recipient_type": {
                                                        "type": "string",
                                                        "enum": [
                                                            "newsletter",
                                                            "customer"
                                                        ]
                                                    },
                                                    "email": {
                                                        "type": "string",
                                                        "format": "email"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "firstname": {
                                                        "type": "string"
                                                    },
                                                    "lastname": {
                                                        "type": "string"
                                                    },
                                                    "delivery_status": {
                                                        "type": "string",
                                                        "enum": [
                                                            "pending",
                                                            "processing",
                                                            "sent",
                                                            "failed",
                                                            "skipped"
                                                        ]
                                                    },
                                                    "delivery_attempts": {
                                                        "type": "integer"
                                                    },
                                                    "sent_at": {
                                                        "type": "string",
                                                        "format": "date-time",
                                                        "nullable": true
                                                    },
                                                    "delivery_error": {
                                                        "type": "string",
                                                        "nullable": true
                                                    },
                                                    "opened": {
                                                        "type": "boolean"
                                                    },
                                                    "first_opened_at": {
                                                        "type": "string",
                                                        "format": "date-time",
                                                        "nullable": true
                                                    },
                                                    "last_opened_at": {
                                                        "type": "string",
                                                        "format": "date-time",
                                                        "nullable": true
                                                    },
                                                    "open_count": {
                                                        "type": "integer"
                                                    },
                                                    "clicked": {
                                                        "type": "boolean"
                                                    },
                                                    "first_clicked_at": {
                                                        "type": "string",
                                                        "format": "date-time",
                                                        "nullable": true
                                                    },
                                                    "last_clicked_at": {
                                                        "type": "string",
                                                        "format": "date-time",
                                                        "nullable": true
                                                    },
                                                    "click_count": {
                                                        "type": "integer"
                                                    },
                                                    "clicks": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "required": [
                                                                "event_id",
                                                                "link_id",
                                                                "url",
                                                                "clicked_at"
                                                            ],
                                                            "properties": {
                                                                "event_id": {
                                                                    "type": "integer"
                                                                },
                                                                "link_id": {
                                                                    "type": "integer"
                                                                },
                                                                "url": {
                                                                    "type": "string",
                                                                    "format": "uri",
                                                                    "nullable": true
                                                                },
                                                                "clicked_at": {
                                                                    "type": "string",
                                                                    "format": "date-time"
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "required": [
                                                "total",
                                                "limit",
                                                "offset",
                                                "status",
                                                "delivery_status",
                                                "search",
                                                "snapshot_total",
                                                "snapshot_available"
                                            ],
                                            "properties": {
                                                "total": {
                                                    "type": "integer"
                                                },
                                                "limit": {
                                                    "type": "integer"
                                                },
                                                "offset": {
                                                    "type": "integer"
                                                },
                                                "status": {
                                                    "type": "string"
                                                },
                                                "delivery_status": {
                                                    "type": "string",
                                                    "enum": [
                                                        "all",
                                                        "pending",
                                                        "processing",
                                                        "sent",
                                                        "failed",
                                                        "skipped"
                                                    ]
                                                },
                                                "search": {
                                                    "type": "string"
                                                },
                                                "snapshot_total": {
                                                    "type": "integer"
                                                },
                                                "snapshot_available": {
                                                    "type": "boolean"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "items": [
                                        {
                                            "recipient_id": 184,
                                            "recipient_type": "newsletter",
                                            "email": "kunde@example.com",
                                            "name": "Erika Musterfrau",
                                            "firstname": "Erika",
                                            "lastname": "Musterfrau",
                                            "delivery_status": "sent",
                                            "delivery_attempts": 1,
                                            "sent_at": "2026-08-11 09:00:12",
                                            "delivery_error": null,
                                            "opened": true,
                                            "first_opened_at": "2026-08-11 09:14:02",
                                            "last_opened_at": "2026-08-11 09:14:02",
                                            "open_count": 1,
                                            "clicked": true,
                                            "first_clicked_at": "2026-08-11 09:15:31",
                                            "last_clicked_at": "2026-08-11 09:16:04",
                                            "click_count": 2,
                                            "clicks": [
                                                {
                                                    "event_id": 501,
                                                    "link_id": 91,
                                                    "url": "https://www.apt-shop.de/social-commerce",
                                                    "clicked_at": "2026-08-11 09:15:31"
                                                },
                                                {
                                                    "event_id": 502,
                                                    "link_id": 92,
                                                    "url": "https://www.apt-shop.de/kontakt",
                                                    "clicked_at": "2026-08-11 09:16:04"
                                                }
                                            ]
                                        }
                                    ],
                                    "meta": {
                                        "total": 1,
                                        "limit": 100,
                                        "offset": 0,
                                        "status": "clicked",
                                        "delivery_status": "sent",
                                        "search": "kunde@example.com",
                                        "snapshot_total": 145,
                                        "snapshot_available": true
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Personenbezogene Empfaenger- und Trackingauswertung abrufen.",
                "description": "Liefert den persistenten Versandempfaenger-Snapshot mit Oeffnungen und Klickdetails. IP- und Geodaten werden nicht ausgegeben. Request-Beispiel: GET /api/v2/private/newsletters/123/tracking?status=clicked&delivery_status=sent&search=kunde%40example.com&limit=100&offset=0\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetNewslettersTrackingPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Newsletter-ID"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der Empfaenger (Standard 100, max 500)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Empfaenger-Snapshot"
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter: all, opened, clicked oder not_opened"
                    },
                    {
                        "name": "delivery_status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Versandstatusfilter: all, pending, processing, sent, failed oder skipped"
                    },
                    {
                        "name": "event_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Alternative zum Statusfilter: open oder click"
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suche in E-Mail, Vorname und Nachname"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletters.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletters.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletters/{id}/copy": {
            "post": {
                "tags": [
                    "newsletters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Newsletter kopieren.",
                "description": "Kopiert einen Newsletter als neuen Entwurf.\n\n\u26a0\ufe0f **Rate Limit:** Max. 1000 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostNewslettersCopyPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Newsletter-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletters.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletters.create"
                ],
                "x-ratelimit": {
                    "limit": 1000,
                    "period": "hour",
                    "description": "Maximal 1000 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletters/{id}/preview": {
            "post": {
                "tags": [
                    "newsletters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "sent": {
                                            "type": "boolean"
                                        },
                                        "recipient": {
                                            "type": "string",
                                            "format": "email"
                                        },
                                        "result": {
                                            "oneOf": [
                                                {
                                                    "type": "boolean"
                                                },
                                                {
                                                    "type": "string"
                                                }
                                            ]
                                        }
                                    }
                                },
                                "example": {
                                    "sent": true,
                                    "recipient": "info@apt-shop.de",
                                    "result": true
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Newsletter-Vorschau versenden.",
                "description": "Versendet den Newsletter wie die Admin-UI an die erste interne Admin-E-Mail-Adresse.\n\n\u26a0\ufe0f **Rate Limit:** Max. 1000 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostNewslettersPreviewPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Newsletter-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletters.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletters.create"
                ],
                "x-ratelimit": {
                    "limit": 1000,
                    "period": "hour",
                    "description": "Maximal 1000 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletters/{id}/prepare_send": {
            "post": {
                "tags": [
                    "newsletters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "newsletter_id": {
                                            "type": "integer"
                                        },
                                        "delivery_status": {
                                            "type": "string",
                                            "enum": [
                                                "draft",
                                                "scheduled",
                                                "sending",
                                                "sent",
                                                "failed",
                                                "cancelled"
                                            ]
                                        },
                                        "auto_continue": {
                                            "type": "boolean"
                                        },
                                        "scheduled_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_started_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_completed_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_error": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "pending": {
                                            "type": "integer"
                                        },
                                        "processing": {
                                            "type": "integer"
                                        },
                                        "sent": {
                                            "type": "integer"
                                        },
                                        "failed": {
                                            "type": "integer"
                                        },
                                        "skipped": {
                                            "type": "integer"
                                        },
                                        "remaining": {
                                            "type": "integer"
                                        },
                                        "batch": {
                                            "type": "object",
                                            "properties": {
                                                "processed": {
                                                    "type": "integer"
                                                },
                                                "sent": {
                                                    "type": "integer"
                                                },
                                                "failed": {
                                                    "type": "integer"
                                                },
                                                "skipped": {
                                                    "type": "integer"
                                                },
                                                "hard_bounces": {
                                                    "type": "integer"
                                                },
                                                "soft_bounces": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "newsletter_id": 42,
                                    "delivery_status": "sending",
                                    "auto_continue": false,
                                    "scheduled_at": null,
                                    "delivery_started_at": "2026-07-15 14:30:00",
                                    "delivery_completed_at": null,
                                    "delivery_error": null,
                                    "total": 120,
                                    "pending": 120,
                                    "processing": 0,
                                    "sent": 0,
                                    "failed": 0,
                                    "skipped": 0,
                                    "remaining": 120
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Newsletter-Versand vorbereiten.",
                "description": "Bereitet Tracking, Empfaenger-Auswahl und Zaehler fuer den Batchversand vor.\n\n\u26a0\ufe0f **Rate Limit:** Max. 1000 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostNewslettersPrepare_sendPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Newsletter-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "send_to_group": {
                                        "type": "integer",
                                        "description": "0=Newsletterempfaenger, sonst Kundengruppen-ID"
                                    },
                                    "marketing_enabled": {
                                        "type": "boolean",
                                        "description": "Bei Kundengruppen nur Kunden mit Marketingeinwilligung beruecksichtigen"
                                    },
                                    "auto_continue": {
                                        "type": "boolean",
                                        "description": "Wenn true, setzt der Minuten-Cron den Batchversand automatisch fort. Standard: false"
                                    }
                                }
                            },
                            "example": {
                                "send_to_group": 0,
                                "marketing_enabled": true,
                                "auto_continue": false
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletters.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletters.create"
                ],
                "x-ratelimit": {
                    "limit": 1000,
                    "period": "hour",
                    "description": "Maximal 1000 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletters/{id}/send_batch": {
            "post": {
                "tags": [
                    "newsletters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "newsletter_id": {
                                            "type": "integer"
                                        },
                                        "delivery_status": {
                                            "type": "string",
                                            "enum": [
                                                "draft",
                                                "scheduled",
                                                "sending",
                                                "sent",
                                                "failed",
                                                "cancelled"
                                            ]
                                        },
                                        "auto_continue": {
                                            "type": "boolean"
                                        },
                                        "scheduled_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_started_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_completed_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_error": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "pending": {
                                            "type": "integer"
                                        },
                                        "processing": {
                                            "type": "integer"
                                        },
                                        "sent": {
                                            "type": "integer"
                                        },
                                        "failed": {
                                            "type": "integer"
                                        },
                                        "skipped": {
                                            "type": "integer"
                                        },
                                        "remaining": {
                                            "type": "integer"
                                        },
                                        "batch": {
                                            "type": "object",
                                            "properties": {
                                                "processed": {
                                                    "type": "integer"
                                                },
                                                "sent": {
                                                    "type": "integer"
                                                },
                                                "failed": {
                                                    "type": "integer"
                                                },
                                                "skipped": {
                                                    "type": "integer"
                                                },
                                                "hard_bounces": {
                                                    "type": "integer"
                                                },
                                                "soft_bounces": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "newsletter_id": 42,
                                    "delivery_status": "sending",
                                    "auto_continue": false,
                                    "scheduled_at": null,
                                    "delivery_started_at": "2026-07-15 14:30:00",
                                    "delivery_completed_at": null,
                                    "delivery_error": null,
                                    "total": 120,
                                    "pending": 70,
                                    "processing": 0,
                                    "sent": 49,
                                    "failed": 1,
                                    "skipped": 0,
                                    "remaining": 70,
                                    "batch": {
                                        "processed": 50,
                                        "sent": 49,
                                        "failed": 1,
                                        "skipped": 0,
                                        "hard_bounces": 1,
                                        "soft_bounces": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Newsletter-Batch versenden.",
                "description": "Versendet die naechste Empfaenger-Portion des vorbereiteten Newsletters.\n\n\u26a0\ufe0f **Rate Limit:** Max. 1000 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostNewslettersSend_batchPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Newsletter-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "batch_size": {
                                        "type": "integer",
                                        "description": "Anzahl Empfaenger fuer diesen Versandlauf, max. 100"
                                    },
                                    "auto_continue": {
                                        "type": "boolean",
                                        "description": "Kompatibilitaetsoption. Laufende Versandvorgaenge werden immer vom Minuten-Cron fortgesetzt."
                                    }
                                }
                            },
                            "example": {
                                "batch_size": 50
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletters.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletters.create"
                ],
                "x-ratelimit": {
                    "limit": 1000,
                    "period": "hour",
                    "description": "Maximal 1000 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletters/{id}/schedule": {
            "post": {
                "tags": [
                    "newsletters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "newsletter_id": {
                                            "type": "integer"
                                        },
                                        "delivery_status": {
                                            "type": "string",
                                            "enum": [
                                                "draft",
                                                "scheduled",
                                                "sending",
                                                "sent",
                                                "failed",
                                                "cancelled"
                                            ]
                                        },
                                        "auto_continue": {
                                            "type": "boolean"
                                        },
                                        "scheduled_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_started_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_completed_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_error": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "pending": {
                                            "type": "integer"
                                        },
                                        "processing": {
                                            "type": "integer"
                                        },
                                        "sent": {
                                            "type": "integer"
                                        },
                                        "failed": {
                                            "type": "integer"
                                        },
                                        "skipped": {
                                            "type": "integer"
                                        },
                                        "remaining": {
                                            "type": "integer"
                                        },
                                        "batch": {
                                            "type": "object",
                                            "properties": {
                                                "processed": {
                                                    "type": "integer"
                                                },
                                                "sent": {
                                                    "type": "integer"
                                                },
                                                "failed": {
                                                    "type": "integer"
                                                },
                                                "skipped": {
                                                    "type": "integer"
                                                },
                                                "hard_bounces": {
                                                    "type": "integer"
                                                },
                                                "soft_bounces": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "newsletter_id": 42,
                                    "delivery_status": "scheduled",
                                    "auto_continue": true,
                                    "scheduled_at": "2026-07-21 10:00:00",
                                    "delivery_started_at": null,
                                    "delivery_completed_at": null,
                                    "delivery_error": null,
                                    "total": 0,
                                    "pending": 0,
                                    "processing": 0,
                                    "sent": 0,
                                    "failed": 0,
                                    "skipped": 0,
                                    "remaining": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Newsletter-Versand planen.",
                "description": "Plant den Versand zu einem zukuenftigen Zeitpunkt. Der Cronjob startet den persistenten Batchversand automatisch.\n\n\u26a0\ufe0f **Rate Limit:** Max. 1000 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostNewslettersSchedulePrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Newsletter-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "scheduled_at"
                                ],
                                "properties": {
                                    "scheduled_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Zukuenftiger Versandzeitpunkt mit Zeitzone"
                                    },
                                    "send_to_group": {
                                        "type": "integer",
                                        "description": "0=Newsletterempfaenger, sonst Kundengruppen-ID"
                                    },
                                    "marketing_enabled": {
                                        "type": "boolean",
                                        "description": "Bei Kundengruppen nur Kunden mit Marketingeinwilligung beruecksichtigen"
                                    }
                                }
                            },
                            "example": {
                                "scheduled_at": "2026-07-21T10:00:00+02:00",
                                "send_to_group": 0,
                                "marketing_enabled": true
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletters.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletters.create"
                ],
                "x-ratelimit": {
                    "limit": 1000,
                    "period": "hour",
                    "description": "Maximal 1000 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletters/{id}/cancel_schedule": {
            "post": {
                "tags": [
                    "newsletters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "newsletter_id": {
                                            "type": "integer"
                                        },
                                        "delivery_status": {
                                            "type": "string",
                                            "enum": [
                                                "draft",
                                                "scheduled",
                                                "sending",
                                                "sent",
                                                "failed",
                                                "cancelled"
                                            ]
                                        },
                                        "auto_continue": {
                                            "type": "boolean"
                                        },
                                        "scheduled_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_started_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_completed_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_error": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "pending": {
                                            "type": "integer"
                                        },
                                        "processing": {
                                            "type": "integer"
                                        },
                                        "sent": {
                                            "type": "integer"
                                        },
                                        "failed": {
                                            "type": "integer"
                                        },
                                        "skipped": {
                                            "type": "integer"
                                        },
                                        "remaining": {
                                            "type": "integer"
                                        },
                                        "batch": {
                                            "type": "object",
                                            "properties": {
                                                "processed": {
                                                    "type": "integer"
                                                },
                                                "sent": {
                                                    "type": "integer"
                                                },
                                                "failed": {
                                                    "type": "integer"
                                                },
                                                "skipped": {
                                                    "type": "integer"
                                                },
                                                "hard_bounces": {
                                                    "type": "integer"
                                                },
                                                "soft_bounces": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "newsletter_id": 42,
                                    "delivery_status": "draft",
                                    "auto_continue": false,
                                    "scheduled_at": null,
                                    "delivery_started_at": null,
                                    "delivery_completed_at": null,
                                    "delivery_error": null,
                                    "total": 0,
                                    "pending": 0,
                                    "processing": 0,
                                    "sent": 0,
                                    "failed": 0,
                                    "skipped": 0,
                                    "remaining": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Geplanten Versand abbrechen.",
                "description": "Entfernt den Versandjob und setzt den Newsletter wieder auf Entwurf.\n\n\u26a0\ufe0f **Rate Limit:** Max. 1000 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostNewslettersCancel_schedulePrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Newsletter-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": []
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletters.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletters.create"
                ],
                "x-ratelimit": {
                    "limit": 1000,
                    "period": "hour",
                    "description": "Maximal 1000 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newsletters/{id}/send_now": {
            "post": {
                "tags": [
                    "newsletters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "newsletter_id": {
                                            "type": "integer"
                                        },
                                        "delivery_status": {
                                            "type": "string",
                                            "enum": [
                                                "draft",
                                                "scheduled",
                                                "sending",
                                                "sent",
                                                "failed",
                                                "cancelled"
                                            ]
                                        },
                                        "auto_continue": {
                                            "type": "boolean"
                                        },
                                        "scheduled_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_started_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_completed_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "delivery_error": {
                                            "type": "string",
                                            "nullable": true
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "pending": {
                                            "type": "integer"
                                        },
                                        "processing": {
                                            "type": "integer"
                                        },
                                        "sent": {
                                            "type": "integer"
                                        },
                                        "failed": {
                                            "type": "integer"
                                        },
                                        "skipped": {
                                            "type": "integer"
                                        },
                                        "remaining": {
                                            "type": "integer"
                                        },
                                        "batch": {
                                            "type": "object",
                                            "properties": {
                                                "processed": {
                                                    "type": "integer"
                                                },
                                                "sent": {
                                                    "type": "integer"
                                                },
                                                "failed": {
                                                    "type": "integer"
                                                },
                                                "skipped": {
                                                    "type": "integer"
                                                },
                                                "hard_bounces": {
                                                    "type": "integer"
                                                },
                                                "soft_bounces": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "newsletter_id": 42,
                                    "delivery_status": "sending",
                                    "auto_continue": true,
                                    "scheduled_at": null,
                                    "delivery_started_at": "2026-07-15 14:30:00",
                                    "delivery_completed_at": null,
                                    "delivery_error": null,
                                    "total": 120,
                                    "pending": 70,
                                    "processing": 0,
                                    "sent": 50,
                                    "failed": 0,
                                    "skipped": 0,
                                    "remaining": 70,
                                    "batch": {
                                        "processed": 50,
                                        "sent": 50,
                                        "failed": 0,
                                        "skipped": 0,
                                        "hard_bounces": 0,
                                        "soft_bounces": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Newsletter-Versand sofort starten.",
                "description": "Erstellt die persistente Empfaengerwarteschlange, versendet den ersten Batch und plant weitere Batches automatisch.\n\n\u26a0\ufe0f **Rate Limit:** Max. 1000 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostNewslettersSend_nowPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Newsletter-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "send_to_group": {
                                        "type": "integer",
                                        "description": "0=Newsletterempfaenger, sonst Kundengruppen-ID"
                                    },
                                    "marketing_enabled": {
                                        "type": "boolean",
                                        "description": "Bei Kundengruppen nur Kunden mit Marketingeinwilligung beruecksichtigen"
                                    },
                                    "batch_size": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "maximum": 100,
                                        "description": "Groesse des sofort versendeten ersten Batches"
                                    }
                                }
                            },
                            "example": {
                                "send_to_group": 0,
                                "marketing_enabled": true,
                                "batch_size": 50
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newsletters.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newsletters.create"
                ],
                "x-ratelimit": {
                    "limit": 1000,
                    "period": "hour",
                    "description": "Maximal 1000 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newslettertemplates": {
            "get": {
                "tags": [
                    "newslettertemplates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string"
                                            },
                                            "name": {
                                                "type": "string"
                                            },
                                            "subject": {
                                                "type": "string"
                                            },
                                            "multishop_id": {
                                                "type": "integer"
                                            },
                                            "lang_id": {
                                                "type": "integer"
                                            },
                                            "art": {
                                                "type": "string",
                                                "example": "newsletter"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 12,
                                        "location": "https://example.org/api/v2/private/newslettertemplates/12",
                                        "name": "newsletter_12",
                                        "subject": "API Newslettervorlage - {BLOG_LAST_1_TITLE}",
                                        "multishop_id": 1,
                                        "lang_id": 1,
                                        "art": "newsletter"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Mehrere Newslettervorlagen abrufen.",
                "description": "Liefert Newslettervorlagen. Es werden nur Vorlagen mit art=newsletter zurueckgegeben.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetNewslettertemplatesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben"
                    },
                    {
                        "name": "multishop_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Id des Multishop"
                    },
                    {
                        "name": "lang_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Id der Sprache"
                    },
                    {
                        "name": "search",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff fuer Name oder Betreff"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newslettertemplates.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newslettertemplates.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "newslettertemplates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Newslettervorlage erstellen.",
                "description": "Erstellt eine Newslettervorlage. Die Vorlage wird automatisch mit art=newsletter gespeichert.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostNewslettertemplatesPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "subject",
                                    "content_html",
                                    "content_text"
                                ],
                                "properties": {
                                    "subject": {
                                        "type": "string",
                                        "description": "Betreff der Newslettervorlage"
                                    },
                                    "content_html": {
                                        "type": "string",
                                        "description": "HTML-Inhalt der Newslettervorlage"
                                    },
                                    "content_text": {
                                        "type": "string",
                                        "description": "Text-Inhalt der Newslettervorlage"
                                    },
                                    "name": {
                                        "type": "string",
                                        "description": "Interner Name. Wenn leer, wird newsletter_{id} gesetzt."
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Id des Multishop"
                                    },
                                    "lang_id": {
                                        "type": "integer",
                                        "description": "Id der Sprache"
                                    }
                                }
                            },
                            "example": {
                                "subject": "API Newslettervorlage - {BLOG_LAST_1_TITLE}",
                                "content_html": "<h1>{BLOG_LAST_1_TITLE}</h1><p>Hallo {VORNAME} {NAME},</p><p>{BLOG_LAST_1_VORSCHAU}</p><p><a href=\"{BLOG_LAST_1_LINK}\">Zum Beitrag</a></p><p><a href=\"{ABMELDE_LINK}\">Abmelden</a></p>",
                                "content_text": "Hallo {VORNAME} {NAME},\n{BLOG_LAST_1_TITLE}\n{BLOG_LAST_1_VORSCHAU}\n{BLOG_LAST_1_LINK}\nAbmeldung: {ABMELDE_LINK}",
                                "multishop_id": 1,
                                "lang_id": 1
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newslettertemplates.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newslettertemplates.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newslettertemplates/{id}": {
            "get": {
                "tags": [
                    "newslettertemplates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "subject": {
                                            "type": "string"
                                        },
                                        "multishop_id": {
                                            "type": "integer"
                                        },
                                        "lang_id": {
                                            "type": "integer"
                                        },
                                        "art": {
                                            "type": "string",
                                            "example": "newsletter"
                                        },
                                        "content_html": {
                                            "type": "string"
                                        },
                                        "content_text": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 12,
                                    "location": "https://example.org/api/v2/private/newslettertemplates/12",
                                    "name": "newsletter_12",
                                    "subject": "API Newslettervorlage - {BLOG_LAST_1_TITLE}",
                                    "multishop_id": 1,
                                    "lang_id": 1,
                                    "art": "newsletter",
                                    "content_html": "<h1>{BLOG_LAST_1_TITLE}</h1><p>Hallo {VORNAME} {NAME}</p>",
                                    "content_text": "Hallo {VORNAME} {NAME}\n{BLOG_LAST_1_TITLE}"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Newslettervorlage abrufen.",
                "description": "Liefert Daten zu einer Newslettervorlage inklusive HTML- und Textinhalt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetNewslettertemplatesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "NewsletterTemplate-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newslettertemplates.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newslettertemplates.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "newslettertemplates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Newslettervorlage aktualisieren.",
                "description": "Aktualisiert eine Newslettervorlage.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutNewslettertemplatesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "NewsletterTemplate-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "subject": {
                                        "type": "string",
                                        "description": "Betreff der Newslettervorlage"
                                    },
                                    "content_html": {
                                        "type": "string",
                                        "description": "HTML-Inhalt der Newslettervorlage"
                                    },
                                    "content_text": {
                                        "type": "string",
                                        "description": "Text-Inhalt der Newslettervorlage"
                                    },
                                    "name": {
                                        "type": "string",
                                        "description": "Interner Name"
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Id des Multishop"
                                    },
                                    "lang_id": {
                                        "type": "integer",
                                        "description": "Id der Sprache"
                                    }
                                }
                            },
                            "example": {
                                "subject": "API Newslettervorlage aktualisiert - {BLOG_LAST_1_TITLE}",
                                "content_html": "<h1>{BLOG_LAST_1_TITLE}</h1><p>Hallo {VORNAME},</p><p>{BLOG_LAST_1_VORSCHAU}</p>",
                                "content_text": "Hallo {VORNAME},\n{BLOG_LAST_1_TITLE}\n{BLOG_LAST_1_VORSCHAU}"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newslettertemplates.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newslettertemplates.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "newslettertemplates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Newslettervorlage loeschen.",
                "description": "Loescht eine Newslettervorlage.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteNewslettertemplatesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "NewsletterTemplate-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newslettertemplates.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newslettertemplates.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/newslettertemplates/variables": {
            "get": {
                "tags": [
                    "newslettertemplates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "key": {
                                                "type": "string"
                                            },
                                            "placeholder": {
                                                "type": "string"
                                            },
                                            "title": {
                                                "type": "string"
                                            },
                                            "phase": {
                                                "type": "string",
                                                "enum": [
                                                    "template",
                                                    "send"
                                                ]
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "key": "EMAIL",
                                        "placeholder": "{EMAIL}",
                                        "title": "E-Mail-Adresse des Empfaengers",
                                        "phase": "send"
                                    },
                                    {
                                        "key": "BLOG_LAST_1_TITLE",
                                        "placeholder": "{BLOG_LAST_1_TITLE}",
                                        "title": "Titel 1. Blogbeitrag",
                                        "phase": "template"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Verfuegbare Newslettervariablen abrufen.",
                "description": "Liefert die in Newslettervorlagen verwendbaren Platzhalter.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetNewslettertemplatesVariablesPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "newslettertemplates.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "newslettertemplates.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/orderhistories": {
            "get": {
                "tags": [
                    "orderhistories"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/orderhistories/1"
                                                    },
                                                    "order_id": {
                                                        "type": "integer",
                                                        "example": 123
                                                    },
                                                    "user": {
                                                        "type": "string",
                                                        "example": "admin"
                                                    },
                                                    "timestamp": {
                                                        "type": "integer",
                                                        "example": 1718190000
                                                    },
                                                    "datetime": {
                                                        "type": "string",
                                                        "example": "2026-06-12 12:00:00"
                                                    },
                                                    "log_name": {
                                                        "type": "string",
                                                        "example": "Status geaendert"
                                                    },
                                                    "order_number": {
                                                        "type": "string",
                                                        "example": "100001"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/orderhistories/1",
                                            "order_id": 123,
                                            "user": "admin",
                                            "timestamp": 1718190000,
                                            "datetime": "2026-06-12 12:00:00",
                                            "log_name": "Status geaendert",
                                            "order_number": "100001"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Orderhistories abrufen.",
                "description": "Liefert eine paginierte Liste fuer Orderhistories.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetOrderhistoriesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/orderhistories/{id}": {
            "get": {
                "tags": [
                    "orderhistories"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/orderhistories/1"
                                                    },
                                                    "order_id": {
                                                        "type": "integer",
                                                        "example": 123
                                                    },
                                                    "user": {
                                                        "type": "string",
                                                        "example": "admin"
                                                    },
                                                    "timestamp": {
                                                        "type": "integer",
                                                        "example": 1718190000
                                                    },
                                                    "datetime": {
                                                        "type": "string",
                                                        "example": "2026-06-12 12:00:00"
                                                    },
                                                    "log_name": {
                                                        "type": "string",
                                                        "example": "Status geaendert"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/orderhistories/1",
                                            "order_id": 123,
                                            "user": "admin",
                                            "timestamp": 1718190000,
                                            "datetime": "2026-06-12 12:00:00",
                                            "log_name": "Status geaendert"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Orderhistories Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Orderhistories.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetOrderhistoriesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/orderhistories/search": {
            "get": {
                "tags": [
                    "orderhistories"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/orderhistories/1"
                                                    },
                                                    "order_id": {
                                                        "type": "integer",
                                                        "example": 123
                                                    },
                                                    "user": {
                                                        "type": "string",
                                                        "example": "admin"
                                                    },
                                                    "timestamp": {
                                                        "type": "integer",
                                                        "example": 1718190000
                                                    },
                                                    "datetime": {
                                                        "type": "string",
                                                        "example": "2026-06-12 12:00:00"
                                                    },
                                                    "log_name": {
                                                        "type": "string",
                                                        "example": "Status geaendert"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/orderhistories/1",
                                            "order_id": 123,
                                            "user": "admin",
                                            "timestamp": 1718190000,
                                            "datetime": "2026-06-12 12:00:00",
                                            "log_name": "Status geaendert"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Orderhistories suchen.",
                "description": "Sucht Datensaetze fuer Orderhistories anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetOrderhistoriesSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/orders": {
            "get": {
                "tags": [
                    "orders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "oneOf": [
                                        {
                                            "description": "Kurzform (Standardausgabe)",
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 123
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "format": "uri",
                                                        "example": "https://localhost/shop/api/v2/private/orders/123"
                                                    }
                                                }
                                            }
                                        },
                                        {
                                            "description": "Detailform (wenn ?details=1)",
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1private~1orders~1{id}/get/responses/200/content/application~1json/schema"
                                            }
                                        }
                                    ]
                                },
                                "examples": {
                                    "Kurzform": {
                                        "summary": "Standardausgabe (ohne ?details=1)",
                                        "value": [
                                            {
                                                "id": 123,
                                                "location": "https://localhost/shop/api/v2/private/orders/123"
                                            },
                                            {
                                                "id": 124,
                                                "location": "https://localhost/shop/api/v2/private/orders/124"
                                            }
                                        ]
                                    },
                                    "Detailform": {
                                        "summary": "Mit ?details=1 \u2013 vollst\u00e4ndige Bestelldaten",
                                        "value": [
                                            {
                                                "id": 123,
                                                "order_number": "Order-123",
                                                "customer_email": "herr.muster@example.com",
                                                "details": [
                                                    {
                                                        "detail_id": 4711,
                                                        "name": "Herren T-Shirt",
                                                        "quantity": 2,
                                                        "amount": 19.99,
                                                        "is_differential_taxed": false
                                                    }
                                                ]
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Bestellungen abrufen.",
                "description": "Liefert interne Bestelldaten f\u00fcr mehrere Bestellungen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 1000 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetOrdersPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zur\u00fcckgegebenen Datens\u00e4tze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Bestelldaten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Id des Datenfilters der ggf im Backend bereits existiert."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "status": {
                                    "type": "string"
                                },
                                "order_art": {
                                    "type": "integer"
                                },
                                "cust_id": {
                                    "type": "integer"
                                },
                                "orderstatus_id": {
                                    "type": "integer"
                                },
                                "start_date": {
                                    "type": "string"
                                },
                                "end_date": {
                                    "type": "string"
                                }
                            }
                        },
                        "description": "Filtert nach z.b. Bestellstatus"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "orders.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "orders.read"
                ],
                "x-ratelimit": {
                    "limit": 1000,
                    "period": "hour",
                    "description": "Maximal 1000 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "orders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Bestellung erstellen.",
                "description": "Erstellt eine Bestellung\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostOrdersPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Datenobjekt zum Anlegen oder Aktualisieren einer Bestellung.",
                                "required": [
                                    "customer_id",
                                    "date",
                                    "order_type_id"
                                ],
                                "properties": {
                                    "customer_id": {
                                        "type": "integer",
                                        "description": "ID des Kunden, der die Bestellung aufgibt.",
                                        "example": 1234
                                    },
                                    "date": {
                                        "type": "string",
                                        "format": "date",
                                        "description": "Bestelldatum im Format YYYY-MM-DD.",
                                        "example": "2025-11-08"
                                    },
                                    "order_type_id": {
                                        "type": "integer",
                                        "description": "Typ der Bestellung (z. B. 0 = Shopbestellung, 1 = Admin, 2 = Dropshipper).",
                                        "example": 0
                                    },
                                    "dropshipper_id": {
                                        "type": "integer",
                                        "description": "Erforderlich, wenn order_type_id ein Dropshipper-Typ ist.",
                                        "example": 55
                                    },
                                    "price_exclude_tax": {
                                        "type": "boolean",
                                        "description": "Gibt an, ob Preise netto (zzgl. MwSt.) angegeben sind.",
                                        "example": false
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "ID des Multishops (Standard = aktueller Shop).",
                                        "example": 1
                                    },
                                    "orderstatus_id": {
                                        "type": "integer",
                                        "description": "Interner Bestellstatus beim Anlegen oder Aktualisieren.",
                                        "example": 0
                                    },
                                    "webhook_url": {
                                        "type": "string",
                                        "format": "uri",
                                        "description": "Webhook-URL (bei Dropshipper-Bestellungen).",
                                        "example": "https://dropshipper.de/hook"
                                    },
                                    "webhook_password": {
                                        "type": "string",
                                        "description": "Passwort zum Webhook (optional).",
                                        "example": "secret123"
                                    },
                                    "order_number_extern": {
                                        "type": "string",
                                        "description": "Externe Bestellnummer (muss eindeutig sein).",
                                        "example": "EXT-2025-001"
                                    },
                                    "statusmails_enable": {
                                        "type": "boolean",
                                        "description": "Aktiviert/Deaktiviert automatische Statusmails.",
                                        "example": true
                                    },
                                    "channel_number": {
                                        "type": "string",
                                        "description": "Externe Kanalnummer (z. B. Marktplatz-ID).",
                                        "example": "AMZ-DE-12345"
                                    },
                                    "notice_customer": {
                                        "type": "string",
                                        "description": "Bemerkung des Kunden.",
                                        "example": "Bitte an Packstation liefern."
                                    },
                                    "notice_order": {
                                        "type": "string",
                                        "description": "Interne Bemerkung zur Bestellung.",
                                        "example": "Sonderrabatt gew\u00e4hrt."
                                    },
                                    "special": {
                                        "type": "object",
                                        "description": "Key-Value-Objekt mit speziellen Zusatzwerten.",
                                        "additionalProperties": {
                                            "type": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "object",
                                                "array"
                                            ]
                                        },
                                        "example": {
                                            "key1": "Value1",
                                            "key2": "Value2"
                                        }
                                    },
                                    "delivery_salutation": {
                                        "type": "string",
                                        "description": "Anrede der Lieferadresse.",
                                        "example": "Herr"
                                    },
                                    "delivery_firstname": {
                                        "type": "string",
                                        "description": "Vorname der Lieferadresse.",
                                        "example": "Max"
                                    },
                                    "delivery_lastname": {
                                        "type": "string",
                                        "description": "Nachname der Lieferadresse.",
                                        "example": "Muster"
                                    },
                                    "delivery_company": {
                                        "type": "string",
                                        "description": "Firma in der Lieferadresse.",
                                        "example": "Muster GmbH"
                                    },
                                    "delivery_addition": {
                                        "type": "string",
                                        "description": "Adresszusatz in der Lieferadresse.",
                                        "example": "z. Hd. Versand"
                                    },
                                    "delivery_street": {
                                        "type": "string",
                                        "description": "Stra\u00dfe der Lieferadresse.",
                                        "example": "Hauptstra\u00dfe"
                                    },
                                    "delivery_streetnr": {
                                        "type": "string",
                                        "description": "Hausnummer der Lieferadresse.",
                                        "example": "10"
                                    },
                                    "delivery_zip": {
                                        "type": "string",
                                        "description": "PLZ der Lieferadresse.",
                                        "example": "12345"
                                    },
                                    "delivery_city": {
                                        "type": "string",
                                        "description": "Ort der Lieferadresse.",
                                        "example": "Musterstadt"
                                    },
                                    "delivery_state": {
                                        "type": "string",
                                        "description": "Bundesland der Lieferadresse.",
                                        "example": "NRW"
                                    },
                                    "delivery_country_iso2": {
                                        "type": "string",
                                        "description": "ISO2-Code des Lieferlandes.",
                                        "example": "DE"
                                    },
                                    "delivery_country_iso3": {
                                        "type": "string",
                                        "description": "ISO3-Code des Lieferlandes.",
                                        "example": "DEU"
                                    },
                                    "delivery_email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "E-Mail der Lieferadresse.",
                                        "example": "kunde@example.com"
                                    },
                                    "delivery_phone": {
                                        "type": "string",
                                        "description": "Telefonnummer der Lieferadresse.",
                                        "example": "+49 123 456789"
                                    },
                                    "bill_salutation": {
                                        "type": "string",
                                        "description": "Anrede der Rechnungsadresse.",
                                        "example": "Herr"
                                    },
                                    "bill_firstname": {
                                        "type": "string",
                                        "description": "Vorname der Rechnungsadresse.",
                                        "example": "Max"
                                    },
                                    "bill_lastname": {
                                        "type": "string",
                                        "description": "Nachname der Rechnungsadresse.",
                                        "example": "Muster"
                                    },
                                    "bill_company": {
                                        "type": "string",
                                        "description": "Firma in der Rechnungsadresse.",
                                        "example": "Muster GmbH"
                                    },
                                    "bill_addition": {
                                        "type": "string",
                                        "description": "Adresszusatz der Rechnungsadresse.",
                                        "example": "Buchhaltung"
                                    },
                                    "bill_street": {
                                        "type": "string",
                                        "description": "Stra\u00dfe der Rechnungsadresse.",
                                        "example": "Rechnungsweg"
                                    },
                                    "bill_streetnr": {
                                        "type": "string",
                                        "description": "Hausnummer der Rechnungsadresse.",
                                        "example": "5"
                                    },
                                    "bill_zip": {
                                        "type": "string",
                                        "description": "PLZ der Rechnungsadresse.",
                                        "example": "54321"
                                    },
                                    "bill_city": {
                                        "type": "string",
                                        "description": "Ort der Rechnungsadresse.",
                                        "example": "Rechnungsstadt"
                                    },
                                    "bill_state": {
                                        "type": "string",
                                        "description": "Bundesland der Rechnungsadresse.",
                                        "example": "BW"
                                    },
                                    "bill_country_iso2": {
                                        "type": "string",
                                        "description": "ISO2-Code des Rechnungslandes.",
                                        "example": "DE"
                                    },
                                    "bill_country_iso3": {
                                        "type": "string",
                                        "description": "ISO3-Code des Rechnungslandes.",
                                        "example": "DEU"
                                    },
                                    "bill_email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "E-Mailadresse f\u00fcr Rechnungen.",
                                        "example": "rechnung@example.com"
                                    },
                                    "shipping_name": {
                                        "type": "string",
                                        "description": "Name der Versandart.",
                                        "example": "DHL Standard"
                                    },
                                    "shipping_price": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Versandkostenbetrag.",
                                        "example": 4.95
                                    },
                                    "shipping_tax_rate": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Steuersatz der Versandkosten.",
                                        "example": 19
                                    },
                                    "billing_name": {
                                        "type": "string",
                                        "description": "Name der Zahlart.",
                                        "example": "Vorkasse"
                                    },
                                    "billing_price": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Zahlartkostenbetrag.",
                                        "example": 2.5
                                    },
                                    "billing_tax_rate": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Steuersatz der Zahlartkosten.",
                                        "example": 19
                                    },
                                    "billing_modul": {
                                        "type": "string",
                                        "description": "Bezeichnung des Zahlungsmoduls.",
                                        "example": "prepayment"
                                    },
                                    "billing_notice": {
                                        "type": "string",
                                        "description": "Hinweistext zur Zahlart.",
                                        "example": "Bitte \u00fcberweisen Sie den Betrag auf IBAN DE00 0000 0000 0000."
                                    },
                                    "billing_additional": {
                                        "type": "object",
                                        "description": "Zus\u00e4tzliche Zahlungsdaten. Bei billing_modul Splitzahlung werden hier die einzelnen Zahlarten und Betr\u00e4ge \u00fcbergeben. W\u00e4hrung, Zahlart-ID, Name, Location und Gesamtsumme ermittelt die API selbst.",
                                        "required": [
                                            "splits"
                                        ],
                                        "properties": {
                                            "splits": {
                                                "type": "array",
                                                "minItems": 1,
                                                "items": {
                                                    "type": "object",
                                                    "required": [
                                                        "payment_module",
                                                        "amount"
                                                    ],
                                                    "properties": {
                                                        "payment_module": {
                                                            "type": "string",
                                                            "description": "Technischer Modulname der Teilzahlart. Splitzahlung selbst ist hier nicht zul\u00e4ssig.",
                                                            "example": "Barzahlung"
                                                        },
                                                        "amount": {
                                                            "type": "number",
                                                            "format": "float",
                                                            "exclusiveMinimum": 0,
                                                            "description": "Betrag dieses Splits in der W\u00e4hrung der Bestellung.",
                                                            "example": 60
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    },
                                    "is_offer": {
                                        "type": "boolean",
                                        "description": "Kennzeichnet die Bestellung als Angebot.",
                                        "example": false
                                    },
                                    "voucher": {
                                        "type": "array",
                                        "description": "Liste der Gutscheine, die mit der Bestellung verkn\u00fcpft sind.",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "voucher_number": {
                                                    "type": "string",
                                                    "description": "Gutscheincode",
                                                    "example": "GUTSCHEIN10"
                                                },
                                                "voucher_type": {
                                                    "type": "integer",
                                                    "description": "0 = Rabattgutschein, 1 = Wertgutschein",
                                                    "example": 0
                                                },
                                                "voucher_amount": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "description": "Gutscheinbetrag (Fixwert)."
                                                },
                                                "voucher_discount": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "description": "Rabatt in Prozent."
                                                }
                                            }
                                        }
                                    },
                                    "details": {
                                        "type": "array",
                                        "description": "Liste der Bestellpositionen.",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "detail_id": {
                                                    "type": "integer",
                                                    "description": "Interne ID des Bestelldetails (nur bei Update)."
                                                },
                                                "delete_detail": {
                                                    "type": "integer",
                                                    "description": "Wenn 1, wird die Position gel\u00f6scht."
                                                },
                                                "artikel_nr": {
                                                    "type": "string",
                                                    "description": "Artikelnummer bei einer neuen Position. Ist kein Shop-Artikel vorhanden, wird mit quantity und dem erforderlichen amount eine freie Bestellposition ohne Artikelverkn\u00fcpfung angelegt; name f\u00e4llt bei Bedarf auf die Artikelnummer zur\u00fcck. Die Antwort enth\u00e4lt eine Warning.",
                                                    "example": "P-10023"
                                                },
                                                "quantity": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "description": "Menge der Position.",
                                                    "example": 2
                                                },
                                                "amount": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "description": "Einzelpreis der Position.",
                                                    "example": 19.99
                                                },
                                                "extern_item_number": {
                                                    "type": "string",
                                                    "description": "Externe Artikelnummer.",
                                                    "example": "AMZ-ART-001"
                                                },
                                                "is_differential_taxed": {
                                                    "type": "boolean",
                                                    "description": "Gibt an, ob die Bestellposition differenzbesteuert ist.",
                                                    "example": false
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "description": "Bezeichnung der Position.",
                                                    "example": "Herren T-Shirt"
                                                }
                                            }
                                        }
                                    }
                                }
                            },
                            "example": {
                                "customer_id": 1001,
                                "date": "2025-11-08",
                                "order_type_id": 0,
                                "multishop_id": 1,
                                "price_exclude_tax": false,
                                "orderstatus_id": 1,
                                "order_number_extern": "EXT-ORD-1001",
                                "statusmails_enable": true,
                                "delivery_country_iso2": "DE",
                                "bill_country_iso2": "DE",
                                "webhook_url": "https://dropship.partner.de/hook",
                                "webhook_password": "secret123",
                                "special": {
                                    "source": "API Import",
                                    "channel": "Shop"
                                },
                                "delivery_salutation": "Herr",
                                "delivery_firstname": "Max",
                                "delivery_lastname": "Muster",
                                "delivery_company": "Muster GmbH",
                                "delivery_street": "Hauptstra\u00dfe",
                                "delivery_streetnr": "10",
                                "delivery_zip": "12345",
                                "delivery_city": "Musterstadt",
                                "delivery_email": "kunde@example.com",
                                "delivery_phone": "+49 123 456789",
                                "bill_salutation": "Herr",
                                "bill_firstname": "Max",
                                "bill_lastname": "Muster",
                                "bill_company": "Muster GmbH",
                                "bill_street": "Rechnungsweg",
                                "bill_streetnr": "5",
                                "bill_zip": "54321",
                                "bill_city": "Rechnungsstadt",
                                "bill_email": "rechnung@example.com",
                                "shipping_name": "DHL Standard",
                                "shipping_price": 4.95,
                                "shipping_tax_rate": 19,
                                "billing_name": "Splitzahlung",
                                "billing_price": 2.5,
                                "billing_tax_rate": 19,
                                "billing_modul": "Splitzahlung",
                                "billing_additional": {
                                    "splits": [
                                        {
                                            "payment_module": "Barzahlung",
                                            "amount": 20
                                        },
                                        {
                                            "payment_module": "Vorkasse",
                                            "amount": 27.58
                                        }
                                    ]
                                },
                                "billing_notice": "Bitte \u00fcberweisen Sie den Betrag vor dem Versand.",
                                "details": [
                                    {
                                        "artikel_nr": "TSHIRT-001",
                                        "quantity": 2,
                                        "amount": 19.99,
                                        "is_differential_taxed": false,
                                        "name": "Herren T-Shirt Classic"
                                    }
                                ],
                                "voucher": [
                                    {
                                        "voucher_number": "NEUKUNDE10",
                                        "voucher_type": 0,
                                        "voucher_discount": 10
                                    }
                                ]
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "orders.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "orders.create"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/orders/{id}": {
            "get": {
                "tags": [
                    "orders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": 1
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        },
                                        "order_number": {
                                            "type": "string",
                                            "description": "Bestellnummer",
                                            "example": "Order-123"
                                        },
                                        "order_number_extern": {
                                            "type": "string",
                                            "description": "Externe-Bestellnummer",
                                            "example": "OrderNrExtern-123"
                                        },
                                        "channel_number": {
                                            "type": "string",
                                            "description": "Kanalnummer"
                                        },
                                        "notice_customer": {
                                            "type": "string",
                                            "description": "Kundenbemerkung zu der Bestellung"
                                        },
                                        "notice_order": {
                                            "type": "string",
                                            "description": "Interne Bemerkung zu der Bestellung"
                                        },
                                        "date": {
                                            "type": "string",
                                            "format": "date",
                                            "description": "Bestelldatum Format YYYY-MM-DD",
                                            "example": "2025-11-01"
                                        },
                                        "customer_id": {
                                            "type": "integer",
                                            "description": "Kundennummer",
                                            "example": 1234
                                        },
                                        "customer_email": {
                                            "type": "string",
                                            "format": "email",
                                            "description": "E-Mailadresse des Kundenaccounts"
                                        },
                                        "customer_location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Customer-Object"
                                        },
                                        "custgroup_id": {
                                            "type": "integer",
                                            "description": "Id der Kundengruppe"
                                        },
                                        "custgroup_name": {
                                            "type": "string",
                                            "description": "Bezeichnung der Kundengruppe",
                                            "example": "Endkunde"
                                        },
                                        "orderstatus_id": {
                                            "type": "integer",
                                            "description": "Id des Bestellstatus"
                                        },
                                        "orderstatus_name": {
                                            "type": "string",
                                            "description": "Bezeichnung des Bestellstatus",
                                            "example": "versendet"
                                        },
                                        "orderstatus_location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Bestellstatus",
                                            "example": "https://localhost/shop/api/v2/private/orderstatuses/3"
                                        },
                                        "orderstatus_intern_id": {
                                            "type": "integer",
                                            "description": "Id des internen Bestellstatus -1 undefined, 0 offen, 1 versendet, 2 storniert,3 teilversendet"
                                        },
                                        "orderstatus_intern_name": {
                                            "type": "string",
                                            "description": "Bezeichnung des internen Bestellstatus",
                                            "example": "undefined | offen | versendet | storniert | teil-versendet"
                                        },
                                        "delivery_salutation": {
                                            "type": "string",
                                            "description": "Versandadresse: Anrede"
                                        },
                                        "delivery_firstname": {
                                            "type": "string",
                                            "description": "Versandadresse: Vorname"
                                        },
                                        "delivery_lastname": {
                                            "type": "string",
                                            "description": "Versandadresse: Nachname"
                                        },
                                        "delivery_company": {
                                            "type": "string",
                                            "description": "Versandadresse: Firma"
                                        },
                                        "delivery_addition": {
                                            "type": "string",
                                            "description": "Versandadresse: Adresszusatz"
                                        },
                                        "delivery_street": {
                                            "type": "string",
                                            "description": "Versandadresse: Strasse"
                                        },
                                        "delivery_streetnr": {
                                            "type": "string",
                                            "description": "Versandadresse: Hausnummer"
                                        },
                                        "delivery_zip": {
                                            "type": "string",
                                            "description": "Versandadresse: PLZ"
                                        },
                                        "delivery_city": {
                                            "type": "string",
                                            "description": "Versandadresse: Ort"
                                        },
                                        "delivery_state": {
                                            "type": "string",
                                            "description": "Versandadresse: Bundesland"
                                        },
                                        "delivery_country": {
                                            "type": "string",
                                            "description": "Versandadresse: Land"
                                        },
                                        "delivery_country_iso2": {
                                            "type": "string",
                                            "description": "Versandadresse: ISO2 Code Land"
                                        },
                                        "delivery_country_iso3": {
                                            "type": "string",
                                            "description": "Versandadresse: ISO3 Code Land"
                                        },
                                        "delivery_email": {
                                            "type": "string",
                                            "description": "Versandadresse: E-Mail"
                                        },
                                        "delivery_phone": {
                                            "type": "string",
                                            "description": "Versandadresse: Telefonnummer"
                                        },
                                        "bill_salutation": {
                                            "type": "string",
                                            "description": "Rechnungsadresse: Anrede"
                                        },
                                        "bill_firstname": {
                                            "type": "string",
                                            "description": "Rechnungsadresse: Vorname"
                                        },
                                        "bill_lastname": {
                                            "type": "string",
                                            "description": "Rechnungsadresse: Nachname"
                                        },
                                        "bill_company": {
                                            "type": "string",
                                            "description": "Rechnungsadresse: Firma"
                                        },
                                        "bill_addition": {
                                            "type": "string",
                                            "description": "Rechnungsadresse: Adresszusatz"
                                        },
                                        "bill_street": {
                                            "type": "string",
                                            "description": "Rechnungsadresse: Strasse"
                                        },
                                        "bill_streetnr": {
                                            "type": "string",
                                            "description": "Rechnungsadresse: Hausnummer"
                                        },
                                        "bill_zip": {
                                            "type": "string",
                                            "description": "Rechnungsadresse: PLZ"
                                        },
                                        "bill_city": {
                                            "type": "string",
                                            "description": "Rechnungsadresse: Ort"
                                        },
                                        "bill_state": {
                                            "type": "string",
                                            "description": "Rechnungsadresse: Bundesland"
                                        },
                                        "bill_country": {
                                            "type": "string",
                                            "description": "Rechnungsadresse: Land"
                                        },
                                        "bill_country_iso2": {
                                            "type": "string",
                                            "description": "Rechnungsadresse: ISO2 Code Land"
                                        },
                                        "bill_country_iso3": {
                                            "type": "string",
                                            "description": "Rechnungsadresse: ISO3 Code Land"
                                        },
                                        "bill_email": {
                                            "type": "string",
                                            "description": "Rechnungsadresse: E-Mail"
                                        },
                                        "shipping_name": {
                                            "type": "string",
                                            "description": "Bezeichnung der Versandart",
                                            "example": "DHL-Versand"
                                        },
                                        "shipping_price": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Versandkosten",
                                            "example": 4.95
                                        },
                                        "shipping_tax_rate": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Steuersatz der Versandkosten",
                                            "example": 19
                                        },
                                        "shipping_weight": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Versandgewicht der Bestellung",
                                            "example": 1.23
                                        },
                                        "billing_name": {
                                            "type": "string",
                                            "description": "Bezeichnung der Zahlart",
                                            "example": "Vorkasse"
                                        },
                                        "billing_price": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Zahlartkosten",
                                            "example": 2.95
                                        },
                                        "billing_tax_rate": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Steuersatz der Zahlartkosten",
                                            "example": 19
                                        },
                                        "billing_modul": {
                                            "type": "string",
                                            "description": "Bezeichnung der zugehoerigen Zahlungsapp",
                                            "example": "Vorkasse"
                                        },
                                        "billing_notice": {
                                            "type": "string",
                                            "description": "Hinweis zur Zahlart",
                                            "example": "Ueberweisen Sie auf das Konto IBAN1234"
                                        },
                                        "billing_additional": {
                                            "type": "object",
                                            "nullable": true,
                                            "description": "Weitere strukturierte Zahlungsdaten. Aktuell werden bei Splitzahlung die einzelnen Splits ausgegeben, bei anderen Zahlarten ist der Wert null.",
                                            "properties": {
                                                "splits": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "payment_type_id": {
                                                                "type": "integer",
                                                                "nullable": true,
                                                                "description": "Id der Zahlart"
                                                            },
                                                            "payment_module": {
                                                                "type": "string",
                                                                "description": "Modulbezeichnung der Zahlart"
                                                            },
                                                            "payment_name": {
                                                                "type": "string",
                                                                "description": "Name der Zahlart"
                                                            },
                                                            "payment_type_location": {
                                                                "type": "string",
                                                                "nullable": true,
                                                                "format": "uri",
                                                                "description": "API Url zur Zahlart"
                                                            },
                                                            "amount": {
                                                                "type": "number",
                                                                "format": "float",
                                                                "description": "Betrag dieses Splits"
                                                            },
                                                            "currency": {
                                                                "type": "string",
                                                                "description": "Waehrung"
                                                            }
                                                        }
                                                    }
                                                },
                                                "total_amount": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "description": "Summe der Splits"
                                                },
                                                "currency": {
                                                    "type": "string",
                                                    "description": "Waehrung"
                                                }
                                            }
                                        },
                                        "price_exclude_tax": {
                                            "type": "boolean",
                                            "description": "Preise der Bestellung sind zzgl. MwSt",
                                            "example": false
                                        },
                                        "vat_number": {
                                            "type": "string",
                                            "description": "UID Nummer des Kunden, sofern aktiv bei der Bestellung",
                                            "example": "DE12345678"
                                        },
                                        "currency_iso": {
                                            "type": "string",
                                            "description": "ISO Code der Waehrung",
                                            "example": "EUR"
                                        },
                                        "order_type_id": {
                                            "type": "integer",
                                            "description": "Id des Bestelltyp, Bsp 0 Shopbestellung, 1 Bestellung durch Admin "
                                        },
                                        "order_type_name": {
                                            "type": "string",
                                            "description": "Bezeichnung des Shopbestellung | Bestellung durch Admin",
                                            "example": "Shopbestellung"
                                        },
                                        "multishop_id": {
                                            "type": "integer",
                                            "description": "Id des Multishops oder Ladenverkaufsstelle"
                                        },
                                        "is_offer": {
                                            "type": "boolean",
                                            "description": "Bestellung ist ein Angebot",
                                            "example": false
                                        },
                                        "webhook_url": {
                                            "type": "string",
                                            "description": "URL die beim API OrdersCreate bei Bestelltyp Dropshipper uebergeben wurde."
                                        },
                                        "total_amount_include_tax": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Gesamtsumme inkl Steuern",
                                            "example": 119
                                        },
                                        "total_amount_exclude_tax": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Gesamtsumme zzgl Steuern",
                                            "example": 100
                                        },
                                        "total_details_amount_include_tax": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Summe der Bestellpositionen inkl Steuern",
                                            "example": 119
                                        },
                                        "total_detail_amount_exclude_tax": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Kompatibilitaetsalias fuer total_details_amount_exclude_tax",
                                            "example": 100
                                        },
                                        "total_details_amount_exclude_tax": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Summe der Bestellpositionen ohne Steuern",
                                            "example": 100
                                        },
                                        "spezial": {
                                            "type": "object",
                                            "description": "Key-Value-Objekt mit dynamischen Schluesseln",
                                            "additionalProperties": {
                                                "type": [
                                                    "string",
                                                    "array",
                                                    "object"
                                                ]
                                            },
                                            "example": {
                                                "key1": "Value1",
                                                "key2": "Value2",
                                                "custom": "Beliebiger Wert"
                                            }
                                        },
                                        "tax": {
                                            "type": "array",
                                            "description": "Liste der Steuerdetails pro Steuersatz",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "tax_rate": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "description": "Steuersatz",
                                                        "example": 19
                                                    },
                                                    "tax_notice": {
                                                        "type": "string",
                                                        "description": "Anzeigetext oder Hinweis zum Steuersatz",
                                                        "example": "inkl. oder zzgl."
                                                    },
                                                    "tax_amount": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "description": "Betrag der Steuer",
                                                        "example": 12.34
                                                    }
                                                }
                                            },
                                            "example": [
                                                {
                                                    "tax_rate": 19,
                                                    "tax_notice": "inkl.",
                                                    "tax_amount": 12.34
                                                },
                                                {
                                                    "tax_rate": 7,
                                                    "tax_notice": "inkl.",
                                                    "tax_amount": 4.21
                                                }
                                            ]
                                        },
                                        "voucher": {
                                            "type": "array",
                                            "description": "Liste der Gutscheine",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "voucher_type": {
                                                        "type": "integer",
                                                        "description": "0 Rabattgutschein | 1 Wertgutschein",
                                                        "example": 0
                                                    },
                                                    "voucher_number": {
                                                        "type": "string",
                                                        "description": "Gutscheinnummer"
                                                    },
                                                    "voucher_number_text": {
                                                        "type": "string",
                                                        "description": "Gutscheinnummer ggf Mit Hinweis auf Hersteller"
                                                    },
                                                    "voucher_discount": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "description": "Betrag in Prozent des Gustcheins",
                                                        "example": 33.3
                                                    },
                                                    "voucher_amount": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "description": "Betrag des Gustcheins",
                                                        "example": 12.34
                                                    }
                                                }
                                            }
                                        },
                                        "rabatt": {
                                            "type": "object",
                                            "description": "Rabattinformationen zur Bestellung",
                                            "properties": {
                                                "discount": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "description": "Rabatt-Prozentsatz (z. B. 10 fuer 10 %)",
                                                    "example": 10
                                                },
                                                "amount": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "description": "Rabattbetrag",
                                                    "example": 12.5
                                                }
                                            },
                                            "example": {
                                                "discount": 10,
                                                "amount": 12.5
                                            }
                                        },
                                        "details": {
                                            "type": "array",
                                            "description": "Liste der Bestellpositionen",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "detail_id": {
                                                        "type": "integer",
                                                        "description": "Eindeutige ID des Bestelldetails",
                                                        "example": 4711
                                                    },
                                                    "detailstatus_intern_id": {
                                                        "type": "integer",
                                                        "description": "Interner Status des Bestelldetails",
                                                        "example": 3
                                                    },
                                                    "artikel_id": {
                                                        "type": "string",
                                                        "description": "Interne Artikel-ID",
                                                        "example": "12345"
                                                    },
                                                    "artikel_nr": {
                                                        "type": "string",
                                                        "description": "Artikelnummer",
                                                        "example": "P-10023"
                                                    },
                                                    "order_nr": {
                                                        "type": "string",
                                                        "description": "Bestellnummer",
                                                        "example": "PO-1234"
                                                    },
                                                    "availability": {
                                                        "type": "string",
                                                        "description": "Verfuegbarkeitsstatus des Artikels",
                                                        "example": "Sofort lieferbar"
                                                    },
                                                    "quantity": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "description": "Bestellte Menge",
                                                        "example": 2
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "description": "Name des Artikels",
                                                        "example": "Herren T-Shirt"
                                                    },
                                                    "size_name": {
                                                        "type": "string",
                                                        "description": "Groessenbezeichnung des Artikels",
                                                        "example": "L"
                                                    },
                                                    "color_name": {
                                                        "type": "string",
                                                        "description": "Farbe des Artikels",
                                                        "example": "Blau"
                                                    },
                                                    "variation_id": {
                                                        "type": "integer",
                                                        "description": "Interne ID der Artikelvariante",
                                                        "example": 150
                                                    },
                                                    "variation_name": {
                                                        "type": "string",
                                                        "description": "Dimensionsunabhaengige Bezeichnung der Variante",
                                                        "example": "L / Blau / Baumwolle"
                                                    },
                                                    "variations": {
                                                        "type": "array",
                                                        "description": "Historisch gespeicherte Variantendimensionen der Bestellposition",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "group_id": {
                                                                    "type": "integer"
                                                                },
                                                                "group_name": {
                                                                    "type": "string"
                                                                },
                                                                "item_id": {
                                                                    "type": "integer"
                                                                },
                                                                "item_name": {
                                                                    "type": "string"
                                                                },
                                                                "legacy_type": {
                                                                    "type": [
                                                                        "string",
                                                                        "null"
                                                                    ]
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "amount": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "description": "Einzelpreis des Artikels",
                                                        "example": 19.99
                                                    },
                                                    "amount_quantity": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "description": "Gesamtpreis fuer die Menge",
                                                        "example": 39.98
                                                    },
                                                    "tax": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "description": "Steuersatz fuer diesen Artikel",
                                                        "example": 19
                                                    },
                                                    "is_differential_taxed": {
                                                        "type": "boolean",
                                                        "description": "Gibt an, ob die Bestellposition differenzbesteuert ist.",
                                                        "example": false
                                                    },
                                                    "total_amount": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "description": "Gesamtpreis",
                                                        "example": 47.58
                                                    },
                                                    "description": {
                                                        "type": "string",
                                                        "description": "Beschreibung oder Zusatztext zum Artikel"
                                                    },
                                                    "company": {
                                                        "type": "string",
                                                        "description": "Hersteller oder Lieferant"
                                                    },
                                                    "artikel_type": {
                                                        "type": "integer",
                                                        "description": "Artikeltyp (z. B. 0 normal, 1 bundle)",
                                                        "example": 0
                                                    },
                                                    "quantity_return": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "description": "Anzahl der retournierten Einheiten",
                                                        "example": 1
                                                    },
                                                    "extern_item_number": {
                                                        "type": "string",
                                                        "description": "Externe Artikelnummer (z. B. vom Marktplazt)"
                                                    },
                                                    "bundles": {
                                                        "type": "array",
                                                        "description": "Artikel im Bundle (falls bundle)",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "name": {
                                                                    "type": "string"
                                                                },
                                                                "variation_name": {
                                                                    "type": "string"
                                                                },
                                                                "quantity": {
                                                                    "type": "number",
                                                                    "format": "float"
                                                                },
                                                                "quantity_detail": {
                                                                    "type": "number",
                                                                    "format": "float"
                                                                },
                                                                "artikel_nr": {
                                                                    "type": "string"
                                                                },
                                                                "size_name": {
                                                                    "type": "string"
                                                                },
                                                                "color_name": {
                                                                    "type": "string"
                                                                },
                                                                "location": {
                                                                    "type": "string",
                                                                    "format": "uri",
                                                                    "description": "API-URL zum Produkt",
                                                                    "example": "https://api.example.com/v2/private/Products/12345"
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "details": {
                                                        "type": "array",
                                                        "description": "Bestellmerkmale und deren bei der Bestellung gespeicherte Werte zu dieser Position",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "order_field_id": {
                                                                    "type": "integer",
                                                                    "description": "Technische ID des Bestellmerkmals (auswahl_id)",
                                                                    "example": 7
                                                                },
                                                                "name": {
                                                                    "type": "string",
                                                                    "description": "Name der Auswahl",
                                                                    "example": "Vorgebot hier eintragen"
                                                                },
                                                                "value": {
                                                                    "type": "string",
                                                                    "description": "Wert des Bestellmerkmals als String; Dezimalwerte koennen ein deutsches Komma enthalten",
                                                                    "example": "123,45"
                                                                },
                                                                "price": {
                                                                    "type": "number",
                                                                    "format": "float",
                                                                    "example": 1.5
                                                                },
                                                                "price_quantity": {
                                                                    "type": "number",
                                                                    "format": "float",
                                                                    "example": 3
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "shipping": {
                                                        "type": "object",
                                                        "description": "Versandinformationen fuer diese Position",
                                                        "properties": {
                                                            "date": {
                                                                "type": "string",
                                                                "format": "date",
                                                                "description": "Versanddatum",
                                                                "example": "2025-03-14"
                                                            },
                                                            "shipping_service": {
                                                                "type": "string",
                                                                "description": "Transportdienstleister",
                                                                "example": "DHL"
                                                            },
                                                            "shipping_method": {
                                                                "type": "string",
                                                                "description": "Versandart",
                                                                "example": "Standard"
                                                            },
                                                            "tracking_number": {
                                                                "type": "string",
                                                                "description": "Trackingnummer",
                                                                "example": "1234567890"
                                                            },
                                                            "tracking_link": {
                                                                "type": "string",
                                                                "format": "uri",
                                                                "description": "Tracking-Link zur Sendungsverfolgung",
                                                                "example": "https://dhl.de/track?1234567890"
                                                            }
                                                        }
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "format": "uri",
                                                        "description": "API-Link zum Artikelobjekt",
                                                        "example": "https://api.example.com/v2/private/Products/10023"
                                                    }
                                                }
                                            }
                                        },
                                        "bills": {
                                            "type": "array",
                                            "description": "Zugehoerige Rechnungen",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "description": "Id des Objects",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "format": "uri",
                                                        "description": "API Url zum Objects",
                                                        "example": "https://domain.de/api/endpoint/1"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/orders/1",
                                    "order_number": "Order-123",
                                    "order_number_extern": "EXT-456",
                                    "channel_number": "C-001",
                                    "notice_customer": "Bitte an Packstation liefern.",
                                    "notice_order": "Interne Notiz: VIP-Kunde.",
                                    "date": "2025-11-01",
                                    "customer_id": 1234,
                                    "customer_email": "herr.muster@example.com",
                                    "customer_location": "https://localhost/shop/api/v2/private/customers/1234",
                                    "custgroup_id": 2,
                                    "custgroup_name": "Endkunde",
                                    "orderstatus_id": 3,
                                    "orderstatus_name": "versendet",
                                    "orderstatus_location": "https://localhost/shop/api/v2/private/orderstatuses/3",
                                    "orderstatus_intern_id": 1,
                                    "orderstatus_intern_name": "versendet",
                                    "delivery_salutation": "Herr",
                                    "delivery_firstname": "Max",
                                    "delivery_lastname": "Muster",
                                    "delivery_company": "Muster GmbH",
                                    "delivery_addition": "z. Hd. Versandabteilung",
                                    "delivery_street": "Musterstra\ufffde",
                                    "delivery_streetnr": "10A",
                                    "delivery_zip": "12345",
                                    "delivery_city": "Musterstadt",
                                    "delivery_state": "Bayern",
                                    "delivery_country": "Deutschland",
                                    "delivery_country_iso2": "DE",
                                    "delivery_country_iso3": "DEU",
                                    "delivery_email": "kunde@example.com",
                                    "delivery_phone": "+49 123 456789",
                                    "bill_salutation": "Herr",
                                    "bill_firstname": "Max",
                                    "bill_lastname": "Muster",
                                    "bill_company": "Muster GmbH",
                                    "bill_addition": "",
                                    "bill_street": "Rechnungsweg",
                                    "bill_streetnr": "5",
                                    "bill_zip": "12345",
                                    "bill_city": "Musterstadt",
                                    "bill_state": "Bayern",
                                    "bill_country": "Deutschland",
                                    "bill_country_iso2": "DE",
                                    "bill_country_iso3": "DEU",
                                    "bill_email": "rechnung@example.com",
                                    "shipping_name": "DHL-Versand",
                                    "shipping_price": 4.95,
                                    "shipping_tax_rate": 19,
                                    "shipping_weight": 1.23,
                                    "billing_name": "Vorkasse",
                                    "billing_price": 2.95,
                                    "billing_tax_rate": 19,
                                    "billing_modul": "Vorkasse",
                                    "billing_additional": null,
                                    "billing_notice": "Bitte \ufffdberweisen Sie auf IBAN DE123456789.",
                                    "price_exclude_tax": false,
                                    "vat_number": "DE12345678",
                                    "currency_iso": "EUR",
                                    "order_type_id": 0,
                                    "order_type_name": "Shopbestellung",
                                    "multishop_id": 1,
                                    "is_offer": false,
                                    "webhook_url": "https://dropshipper.example.com/webhook",
                                    "dropshipper_id": 0,
                                    "dropshipper_location": null,
                                    "total_amount_include_tax": 119,
                                    "total_amount_exclude_tax": 100,
                                    "total_details_amount_include_tax": 113,
                                    "total_detail_amount_exclude_tax": 95,
                                    "total_details_amount_exclude_tax": 95,
                                    "spezial": {
                                        "key1": "Wert1",
                                        "key2": "Wert2",
                                        "custom_note": "Interner Hinweis"
                                    },
                                    "tax": [
                                        {
                                            "tax_rate": 19,
                                            "tax_notice": "inkl.",
                                            "tax_amount": 12.34
                                        }
                                    ],
                                    "voucher": [
                                        {
                                            "voucher_type": 0,
                                            "voucher_number": "GUTSCHEIN-2025-001",
                                            "voucher_number_text": "Sommeraktion 2025",
                                            "voucher_discount": 10,
                                            "voucher_amount": 5
                                        }
                                    ],
                                    "rabatt": {
                                        "discount": 5,
                                        "amount": 5
                                    },
                                    "details": [
                                        {
                                            "detail_id": 4711,
                                            "detailstatus_intern_id": 1,
                                            "artikel_id": "P-10023",
                                            "artikel_nr": "TSHIRT-001",
                                            "order_nr": "Order-123",
                                            "availability": "Sofort lieferbar",
                                            "quantity": 2,
                                            "name": "T-Shirt Herren Classic",
                                            "size_name": "L",
                                            "color_name": "Blau",
                                            "variation_id": 150,
                                            "variation_name": "L / Blau / Baumwolle",
                                            "variations": [
                                                {
                                                    "group_id": 1,
                                                    "group_name": "Groesse",
                                                    "item_id": 10,
                                                    "item_name": "L",
                                                    "legacy_type": null
                                                },
                                                {
                                                    "group_id": 2,
                                                    "group_name": "Farbe",
                                                    "item_id": 20,
                                                    "item_name": "Blau",
                                                    "legacy_type": null
                                                },
                                                {
                                                    "group_id": 3,
                                                    "group_name": "Material",
                                                    "item_id": 30,
                                                    "item_name": "Baumwolle",
                                                    "legacy_type": null
                                                }
                                            ],
                                            "amount": 19.99,
                                            "amount_quantity": 39.98,
                                            "tax": 19,
                                            "is_differential_taxed": false,
                                            "total_amount": 47.58,
                                            "description": "Klassisches Herren-T-Shirt aus Baumwolle.",
                                            "company": "Muster Textil GmbH",
                                            "artikel_type": 0,
                                            "quantity_return": 0,
                                            "extern_item_number": "MKP-123",
                                            "bundles": [],
                                            "details": [
                                                {
                                                    "order_field_id": 7,
                                                    "name": "Vorgebot hier eintragen",
                                                    "value": "123,45",
                                                    "price": 0,
                                                    "price_quantity": 0
                                                }
                                            ],
                                            "shipping": {
                                                "date": "2025-11-03",
                                                "shipping_service": "DHL",
                                                "shipping_method": "Standard",
                                                "tracking_number": "00340434123456789012",
                                                "tracking_link": "https://dhl.de/track?00340434123456789012"
                                            },
                                            "location": "https://localhost/shop/api/v2/private/products/10023"
                                        }
                                    ],
                                    "bills": [
                                        {
                                            "id": 501,
                                            "location": "https://localhost/shop/api/v2/private/bills/501"
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Bestellung abrufen.",
                "description": "Liefert interne Bestelldaten f\u00fcr eine Bestellung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 1000 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetOrdersDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Order-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "orders.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "orders.read"
                ],
                "x-ratelimit": {
                    "limit": 1000,
                    "period": "hour",
                    "description": "Maximal 1000 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "orders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Bestellung aktualisieren.",
                "description": "Aktualisiert die Daten einer Bestellung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutOrdersDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Order-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Felder, die beim Aktualisieren einer Bestellung \u00fcbergeben werden k\u00f6nnen.",
                                "properties": {
                                    "channel_number": {
                                        "type": "string",
                                        "description": "Externe Kanalnummer (z. B. Marktplatz-ID).",
                                        "example": "AMZ-DE-12345"
                                    },
                                    "notice_customer": {
                                        "type": "string",
                                        "description": "Kundenbemerkung zur Bestellung.",
                                        "example": "Bitte an Packstation liefern."
                                    },
                                    "notice_order": {
                                        "type": "string",
                                        "description": "Interne Bemerkung zur Bestellung.",
                                        "example": "Kunde telefonisch kontaktiert."
                                    },
                                    "special": {
                                        "type": "object",
                                        "description": "Key-Value-Objekt mit Zusatzdaten oder Metainformationen zur Bestellung.",
                                        "additionalProperties": {
                                            "type": [
                                                "string",
                                                "number",
                                                "boolean",
                                                "object",
                                                "array"
                                            ]
                                        },
                                        "example": {
                                            "ref": "API-IMPORT",
                                            "priority": "high"
                                        }
                                    },
                                    "orderstatus_id": {
                                        "type": "integer",
                                        "description": "\u00c4ndert den Bestellstatus.",
                                        "example": 3
                                    },
                                    "shipping_name": {
                                        "type": "string",
                                        "description": "Neue Bezeichnung der Versandart.",
                                        "example": "DHL Express"
                                    },
                                    "shipping_price": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Versandkostenbetrag.",
                                        "example": 6.95
                                    },
                                    "shipping_tax_rate": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Steuersatz der Versandkosten.",
                                        "example": 19
                                    },
                                    "billing_name": {
                                        "type": "string",
                                        "description": "Bezeichnung der Zahlart.",
                                        "example": "Kreditkarte"
                                    },
                                    "billing_price": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Zahlartkostenbetrag.",
                                        "example": 1.5
                                    },
                                    "billing_tax_rate": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Steuersatz der Zahlartkosten.",
                                        "example": 19
                                    },
                                    "billing_modul": {
                                        "type": "string",
                                        "description": "Technischer Modulname der Zahlungsart.",
                                        "example": "stripe_creditcard"
                                    },
                                    "billing_notice": {
                                        "type": "string",
                                        "description": "Hinweistext zur Zahlart.",
                                        "example": "Die Abbuchung erfolgt automatisch."
                                    },
                                    "is_offer": {
                                        "type": "boolean",
                                        "description": "Kennzeichnet die Bestellung als Angebot.",
                                        "example": false
                                    },
                                    "voucher": {
                                        "type": "array",
                                        "description": "Liste der Gutscheine, die hinzugef\u00fcgt oder aktualisiert werden sollen.",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "voucher_number": {
                                                    "type": "string",
                                                    "description": "Eindeutiger Gutscheincode.",
                                                    "example": "GUTSCHEIN10"
                                                },
                                                "voucher_type": {
                                                    "type": "integer",
                                                    "description": "0 = Rabattgutschein, 1 = Wertgutschein.",
                                                    "example": 0
                                                },
                                                "voucher_amount": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "description": "Gutscheinbetrag (Fixwert).",
                                                    "example": 10
                                                },
                                                "voucher_discount": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "description": "Rabatt in Prozent.",
                                                    "example": 5
                                                }
                                            }
                                        }
                                    },
                                    "details": {
                                        "type": "array",
                                        "description": "Liste der zu aktualisierenden oder hinzuzuf\u00fcgenden Bestellpositionen.",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "detail_id": {
                                                    "type": "integer",
                                                    "description": "Interne ID der Bestellposition (Pflicht bei Updates).",
                                                    "example": 4711
                                                },
                                                "delete_detail": {
                                                    "type": "integer",
                                                    "description": "Wenn 1, wird die Position gel\u00f6scht.",
                                                    "example": 1
                                                },
                                                "artikel_nr": {
                                                    "type": "string",
                                                    "description": "Artikelnummer bei einer neuen Position. Ist kein Shop-Artikel vorhanden, wird mit quantity und dem erforderlichen amount eine freie Bestellposition ohne Artikelverkn\u00fcpfung angelegt; name f\u00e4llt bei Bedarf auf die Artikelnummer zur\u00fcck. Die Antwort enth\u00e4lt eine Warning.",
                                                    "example": "ART-12345"
                                                },
                                                "quantity": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "description": "Neue Menge der Position.",
                                                    "example": 3
                                                },
                                                "amount": {
                                                    "type": "number",
                                                    "format": "float",
                                                    "description": "Einzelpreis der Position.",
                                                    "example": 24.99
                                                },
                                                "extern_item_number": {
                                                    "type": "string",
                                                    "description": "Externe Artikelnummer.",
                                                    "example": "AMZ-001"
                                                },
                                                "is_differential_taxed": {
                                                    "type": "boolean",
                                                    "description": "Gibt an, ob die Bestellposition differenzbesteuert ist.",
                                                    "example": false
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "description": "Bezeichnung der Position.",
                                                    "example": "T-Shirt Herren Classic"
                                                }
                                            }
                                        }
                                    },
                                    "delivery_salutation": {
                                        "type": "string",
                                        "example": "Herr"
                                    },
                                    "delivery_firstname": {
                                        "type": "string",
                                        "example": "Max"
                                    },
                                    "delivery_lastname": {
                                        "type": "string",
                                        "example": "Muster"
                                    },
                                    "delivery_company": {
                                        "type": "string",
                                        "example": "Muster GmbH"
                                    },
                                    "delivery_addition": {
                                        "type": "string",
                                        "example": "z. Hd. Versand"
                                    },
                                    "delivery_street": {
                                        "type": "string",
                                        "example": "Hauptstra\u00dfe"
                                    },
                                    "delivery_streetnr": {
                                        "type": "string",
                                        "example": "10"
                                    },
                                    "delivery_zip": {
                                        "type": "string",
                                        "example": "12345"
                                    },
                                    "delivery_city": {
                                        "type": "string",
                                        "example": "Musterstadt"
                                    },
                                    "delivery_state": {
                                        "type": "string",
                                        "example": "NRW"
                                    },
                                    "delivery_country_iso2": {
                                        "type": "string",
                                        "example": "DE"
                                    },
                                    "delivery_country_iso3": {
                                        "type": "string",
                                        "example": "DEU"
                                    },
                                    "delivery_email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "kunde@example.com"
                                    },
                                    "bill_salutation": {
                                        "type": "string",
                                        "example": "Herr"
                                    },
                                    "bill_firstname": {
                                        "type": "string",
                                        "example": "Max"
                                    },
                                    "bill_lastname": {
                                        "type": "string",
                                        "example": "Muster"
                                    },
                                    "bill_company": {
                                        "type": "string",
                                        "example": "Muster GmbH"
                                    },
                                    "bill_addition": {
                                        "type": "string",
                                        "example": "Buchhaltung"
                                    },
                                    "bill_street": {
                                        "type": "string",
                                        "example": "Rechnungsweg"
                                    },
                                    "bill_streetnr": {
                                        "type": "string",
                                        "example": "5"
                                    },
                                    "bill_zip": {
                                        "type": "string",
                                        "example": "54321"
                                    },
                                    "bill_city": {
                                        "type": "string",
                                        "example": "Rechnungsstadt"
                                    },
                                    "bill_state": {
                                        "type": "string",
                                        "example": "BW"
                                    },
                                    "bill_country_iso2": {
                                        "type": "string",
                                        "example": "DE"
                                    },
                                    "bill_country_iso3": {
                                        "type": "string",
                                        "example": "DEU"
                                    },
                                    "bill_email": {
                                        "type": "string",
                                        "format": "email",
                                        "example": "rechnung@example.com"
                                    }
                                }
                            },
                            "example": {
                                "notice_order": "Versandkosten aktualisiert und Gutschein hinzugefuegt.",
                                "orderstatus_id": 3,
                                "shipping_name": "DHL Express",
                                "shipping_price": 6.95,
                                "shipping_tax_rate": 19,
                                "billing_name": "Kreditkarte",
                                "billing_price": 1.5,
                                "billing_tax_rate": 19,
                                "is_offer": false,
                                "special": {
                                    "updated_by": "API Script",
                                    "priority": "high"
                                },
                                "delivery_firstname": "Maximilian",
                                "delivery_lastname": "Muster",
                                "delivery_zip": "12345",
                                "delivery_city": "Musterstadt",
                                "bill_firstname": "Maximilian",
                                "bill_lastname": "Muster",
                                "bill_zip": "54321",
                                "bill_city": "Rechnungsstadt",
                                "voucher": [
                                    {
                                        "voucher_number": "EXPRESS5",
                                        "voucher_type": 0,
                                        "voucher_discount": 5
                                    }
                                ],
                                "details": [
                                    {
                                        "detail_id": 4711,
                                        "quantity": 3,
                                        "amount": 18.99,
                                        "is_differential_taxed": false
                                    },
                                    {
                                        "artikel_nr": "CAP-002",
                                        "quantity": 1,
                                        "amount": 9.99,
                                        "is_differential_taxed": false,
                                        "name": "Baseball Cap Schwarz"
                                    }
                                ]
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "orders.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "orders.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/orders/checkexternnumber": {
            "get": {
                "tags": [
                    "orders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Prueft ob eine Bestellung mit der externen Bestellnummer existiert",
                "description": "Prueft ob eine Bestellung mit der externen Bestellnummer existiert.\n\n\u26a0\ufe0f **Rate Limit:** Max. 1000 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetOrdersCheckexternnumberPrivate",
                "parameters": [
                    {
                        "name": "order_number_extern",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Die externe Bestellnummer"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "orders.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "orders.read"
                ],
                "x-ratelimit": {
                    "limit": 1000,
                    "period": "hour",
                    "description": "Maximal 1000 Requests pro hour erlaubt."
                }
            }
        },
        "/private/orders/{id}/sendmail": {
            "post": {
                "tags": [
                    "orders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sendet eine Bestellbest\u00e4tigung an den Kunden",
                "description": "Sendet eine Bestellbest\u00e4tigung an den Kunden (lang).\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostOrdersSendmailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Order-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "recipients": {
                                        "type": "array",
                                        "description": "Liste der Empfaenger-E-Mailadressen",
                                        "items": {
                                            "type": "string",
                                            "format": "email",
                                            "example": "kunde@example.com"
                                        },
                                        "example": [
                                            "kunde@example.com",
                                            "support@example.com"
                                        ]
                                    }
                                }
                            },
                            "example": {
                                "recipients": [
                                    "kunde@example.com",
                                    "support@example.com"
                                ]
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "orders.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "orders.create"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/orders/{id}/createbill": {
            "post": {
                "tags": [
                    "orders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": 1
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        },
                                        "billdata": {
                                            "type": "object",
                                            "description": "array mit Rechnungsdaten",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "description": "Id der Rechnung",
                                                    "example": "1"
                                                },
                                                "bill_number": {
                                                    "type": "string",
                                                    "description": "Rechnungsnummer",
                                                    "example": "RE-12345"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "URL",
                                    "billdata": {
                                        "id": "bill_id",
                                        "bill_number": "Rechnungsnummer"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Erstellt eine Rechnung und speichert sie im System.",
                "description": "Erstellt eine Rechnung zue einer Bestellung und speichert sie im System.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostOrdersCreatebillPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Order-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "adminuser_id": {
                                        "type": "integer",
                                        "description": "Optionale ID des Admin-Bearbeiters. Wird fuer die Depot-Ermittlung bei Lagerplatz-Sortierung verwendet.",
                                        "example": 1
                                    }
                                }
                            },
                            "example": {
                                "adminuser_id": 1
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "orders.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "orders.create"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/orders/{id}/createdeliverynote": {
            "post": {
                "tags": [
                    "orders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        },
                                        "deliverynotedata": {
                                            "type": "object",
                                            "description": "array mit Lieferscheindaten",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "description": "Id des Lieferscheins",
                                                    "example": "1"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "URL",
                                    "deliverynotedata": {
                                        "id": "delivernote_id"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Erstellt einen Lieferschein und speichert ihn im System",
                "description": "Erstellt einen Lieferschein und speichert ihn im System (lang).\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostOrdersCreatedeliverynotePrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Order-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "orderdetail_ids": {
                                        "type": "array",
                                        "description": "Liste der Order-Detail IDs",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2,
                                            3,
                                            4,
                                            5
                                        ]
                                    },
                                    "shipping_date": {
                                        "type": "string",
                                        "format": "date",
                                        "description": "Das Dtum des Versandzeitpunkts",
                                        "example": "202-01-01"
                                    },
                                    "shipping_service": {
                                        "type": "string",
                                        "description": "Der Transportdienst",
                                        "example": "DHL"
                                    },
                                    "shipping_method": {
                                        "type": "string",
                                        "description": "optionale Bezeichnung der Versandart",
                                        "example": "Express"
                                    },
                                    "tracking_number": {
                                        "type": "string",
                                        "description": "Die Sendungsverfolgungsnummer",
                                        "example": "123456789"
                                    },
                                    "adminuser_id": {
                                        "type": "integer",
                                        "description": "Optionale ID des Admin-Bearbeiters. Wird fuer die Depot-Ermittlung bei Lagerplatz-Sortierung verwendet.",
                                        "example": 1
                                    }
                                }
                            },
                            "example": {
                                "orderdetail_ids": [
                                    1,
                                    2
                                ],
                                "shipping_date": "2026-01-01",
                                "shipping_service": "DHL",
                                "tracking_number": "123456789",
                                "adminuser_id": 1
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "orders.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "orders.create"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/orders/{id}/createlog": {
            "post": {
                "tags": [
                    "orders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Erstellt einen Logeintrag zu einer Bestellung",
                "description": "Erstellt einen Logeintrag zu einer Bestellung (lang).\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostOrdersCreatelogPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Order-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "description": "Inhalt des Logeintrages",
                                        "example": "Interne Notiz zur Bestellung"
                                    }
                                },
                                "required": [
                                    "title"
                                ]
                            },
                            "example": {
                                "title": "Interne Notiz zur Bestellung"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "orders.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "orders.create"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/orders/{id}/createdocument": {
            "post": {
                "tags": [
                    "orders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        },
                                        "orderdocumentdata": {
                                            "type": "object",
                                            "description": "array mit Daten zum Orderdocument",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "description": "Id des OrderDoucuments",
                                                    "example": "1"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "URL",
                                    "orderdocumentdata": {
                                        "id": 1
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "F\u00fcgt ein Dokument zu einer Bestellung hinzu",
                "description": "F\u00fcgt ein Dokument zu einer Bestellung hinzu\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostOrdersCreatedocumentPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Order-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "document_type": {
                                        "type": "integer",
                                        "description": "Die ID des Dokumententyps",
                                        "example": 18
                                    },
                                    "document": {
                                        "type": "string",
                                        "description": "Die Datei als base64 kodierter String"
                                    },
                                    "file_name": {
                                        "type": "string",
                                        "description": "Der Dateiname",
                                        "example": "mein_pdf.pdf"
                                    }
                                },
                                "required": [
                                    "document_type",
                                    "document"
                                ]
                            },
                            "example": {
                                "document_type": "Id des Dokumententyps",
                                "document": "Dokument als base64 kodierter String",
                                "file_name": "Dateiname"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "orders.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "orders.create"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/orders/{id}/ship": {
            "post": {
                "tags": [
                    "orders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Versendet eine Bestellung im Rahmen der WWS Funktion Versenden",
                "description": "Versendet eine Bestellung im Rahmen der WWS Funktion Versenden\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostOrdersShipPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Order-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "orderdetail_ids": {
                                        "type": "array",
                                        "description": "Liste der Order-Detail IDs, sind keine orderdetail_ids angeben, werden alle offenen Positionen versendet",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2,
                                            3,
                                            4,
                                            5
                                        ]
                                    },
                                    "shipping_date": {
                                        "type": "string",
                                        "format": "date",
                                        "description": "Das Dtum des Versandzeitpunkts",
                                        "example": "202-01-01"
                                    },
                                    "shipping_service": {
                                        "type": "string",
                                        "description": "Der Transportdienst",
                                        "example": "DHL"
                                    },
                                    "shipping_method": {
                                        "type": "string",
                                        "description": "optionale Bezeichnung der Versandart",
                                        "example": "Express"
                                    },
                                    "tracking_number": {
                                        "type": "string",
                                        "description": "Die Sendungsverfolgungsnummer",
                                        "example": "123456789"
                                    },
                                    "depot_id": {
                                        "type": "integer",
                                        "description": "Die ID des Lagers aus dem versendet werden soll",
                                        "example": 1,
                                        "default": 1
                                    }
                                }
                            },
                            "example": {
                                "orderdetail_ids": [
                                    1,
                                    2
                                ],
                                "shipping_date": "2026-01-01",
                                "shipping_service": "DHL",
                                "tracking_number": "123456789",
                                "depot_id": 1
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "orders.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "orders.create"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/orders/{id}/cancel": {
            "post": {
                "tags": [
                    "orders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Storniert eine Bestellung im Rahmen der WWS Funktion Stornieren",
                "description": "Storniert eine Bestellung im Rahmen der WWS Funktion Stornieren\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostOrdersCancelPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Order-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "orderdetail_ids": {
                                        "type": "array",
                                        "description": "Liste der Order-Detail IDs, sind keine orderdetail_ids angeben, werden alle offenen Positionen storniert",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2,
                                            3,
                                            4,
                                            5
                                        ]
                                    }
                                }
                            },
                            "example": {
                                "orderdetail_ids": [
                                    1,
                                    2
                                ]
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "orders.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "orders.create"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/orders/{id}/return": {
            "post": {
                "tags": [
                    "orders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "required": [
                                        "order",
                                        "return",
                                        "process"
                                    ],
                                    "properties": {
                                        "order": {
                                            "$ref": "./docs/returns/Orders/get_order.json",
                                            "description": "Aktualisierte Bestellung inklusive der neuen quantity_return-Werte"
                                        },
                                        "return": {
                                            "type": "object",
                                            "required": [
                                                "full_return",
                                                "positions",
                                                "refund_requested"
                                            ],
                                            "properties": {
                                                "full_return": {
                                                    "type": "boolean",
                                                    "description": "True, wenn nach dieser Verarbeitung alle Bestellmengen vollstaendig retourniert sind"
                                                },
                                                "positions": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "required": [
                                                            "return_id",
                                                            "detail_id",
                                                            "artikel_id",
                                                            "quantity",
                                                            "return_to_stock",
                                                            "reason_id",
                                                            "reason",
                                                            "comment"
                                                        ],
                                                        "properties": {
                                                            "return_id": {
                                                                "type": "integer",
                                                                "description": "ID des erzeugten Retourendatensatzes"
                                                            },
                                                            "detail_id": {
                                                                "type": "integer"
                                                            },
                                                            "artikel_id": {
                                                                "type": "integer"
                                                            },
                                                            "quantity": {
                                                                "type": "integer"
                                                            },
                                                            "depot_id": {
                                                                "type": "integer",
                                                                "nullable": true
                                                            },
                                                            "return_to_stock": {
                                                                "type": "boolean"
                                                            },
                                                            "reason_id": {
                                                                "type": "integer"
                                                            },
                                                            "reason": {
                                                                "type": "string"
                                                            },
                                                            "comment": {
                                                                "type": "string"
                                                            }
                                                        }
                                                    }
                                                },
                                                "refund_requested": {
                                                    "type": "boolean"
                                                },
                                                "refund_processed": {
                                                    "type": "boolean",
                                                    "nullable": true,
                                                    "description": "Ergebnis des TikTok-Refundprozesses; null, wenn kein Refund angefordert wurde"
                                                }
                                            }
                                        },
                                        "process": {
                                            "type": "object",
                                            "required": [
                                                "action",
                                                "status",
                                                "webhooks"
                                            ],
                                            "properties": {
                                                "action": {
                                                    "type": "string",
                                                    "enum": [
                                                        "returned",
                                                        "partially_returned"
                                                    ]
                                                },
                                                "status": {
                                                    "type": "object",
                                                    "required": [
                                                        "id",
                                                        "name"
                                                    ],
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        }
                                                    }
                                                },
                                                "webhooks": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "required": [
                                                            "event",
                                                            "status"
                                                        ],
                                                        "properties": {
                                                            "event": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "Orders/returned",
                                                                    "Orders/partially_returned"
                                                                ]
                                                            },
                                                            "status": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "dispatched"
                                                                ]
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "examples": {
                                    "teilretoure": {
                                        "summary": "Erfolgreiche Teilretoure",
                                        "value": {
                                            "order": {
                                                "id": 123,
                                                "location": "https://domain.de/api/v2/private/orders/123",
                                                "order_number": "Order-123",
                                                "orderstatus_id": 7,
                                                "orderstatus_name": "Retoure",
                                                "details": [
                                                    {
                                                        "detail_id": 501,
                                                        "artikel_id": 1001,
                                                        "quantity": 2,
                                                        "quantity_return": 1
                                                    },
                                                    {
                                                        "detail_id": 502,
                                                        "artikel_id": 1002,
                                                        "quantity": 1,
                                                        "quantity_return": 0
                                                    }
                                                ]
                                            },
                                            "return": {
                                                "full_return": false,
                                                "positions": [
                                                    {
                                                        "return_id": 9001,
                                                        "detail_id": 501,
                                                        "artikel_id": 1001,
                                                        "quantity": 1,
                                                        "depot_id": 1,
                                                        "return_to_stock": true,
                                                        "reason_id": 1,
                                                        "reason": "Widerruf/R\u00fccknahme",
                                                        "comment": "Unbenutzt zurueckgesendet"
                                                    }
                                                ],
                                                "refund_requested": false,
                                                "refund_processed": null
                                            },
                                            "process": {
                                                "action": "partially_returned",
                                                "status": {
                                                    "id": 7,
                                                    "name": "Retoure"
                                                },
                                                "webhooks": [
                                                    {
                                                        "event": "Orders/partially_returned",
                                                        "status": "dispatched"
                                                    }
                                                ]
                                            }
                                        }
                                    },
                                    "vollretoure": {
                                        "summary": "Erfolgreiche Vollretoure, auch bei explizit uebergebenen Positionen",
                                        "value": {
                                            "order": {
                                                "id": 123,
                                                "location": "https://domain.de/api/v2/private/orders/123",
                                                "order_number": "Order-123",
                                                "orderstatus_id": 7,
                                                "orderstatus_name": "Retoure",
                                                "details": [
                                                    {
                                                        "detail_id": 501,
                                                        "artikel_id": 1001,
                                                        "quantity": 2,
                                                        "quantity_return": 2
                                                    },
                                                    {
                                                        "detail_id": 502,
                                                        "artikel_id": 1002,
                                                        "quantity": 1,
                                                        "quantity_return": 1
                                                    }
                                                ]
                                            },
                                            "return": {
                                                "full_return": true,
                                                "positions": [
                                                    {
                                                        "return_id": 9001,
                                                        "detail_id": 501,
                                                        "artikel_id": 1001,
                                                        "quantity": 2,
                                                        "depot_id": 1,
                                                        "return_to_stock": true,
                                                        "reason_id": 1,
                                                        "reason": "Widerruf/R\u00fccknahme",
                                                        "comment": "Komplettretoure"
                                                    },
                                                    {
                                                        "return_id": 9002,
                                                        "detail_id": 502,
                                                        "artikel_id": 1002,
                                                        "quantity": 1,
                                                        "depot_id": 1,
                                                        "return_to_stock": true,
                                                        "reason_id": 1,
                                                        "reason": "Widerruf/R\u00fccknahme",
                                                        "comment": "Komplettretoure"
                                                    }
                                                ],
                                                "refund_requested": false,
                                                "refund_processed": null
                                            },
                                            "process": {
                                                "action": "returned",
                                                "status": {
                                                    "id": 7,
                                                    "name": "Retoure"
                                                },
                                                "webhooks": [
                                                    {
                                                        "event": "Orders/returned",
                                                        "status": "dispatched"
                                                    }
                                                ]
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Retourniert eine Bestellung vollstaendig oder teilweise",
                "description": "Erzeugt Retourendatensaetze, bucht optional in ein Lager zurueck, setzt den Retourenstatus und loest Orders/returned bzw. Orders/partially_returned aus.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostOrdersReturnPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Order-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "positions": {
                                        "type": "array",
                                        "description": "Retourenpositionen. Fehlt das Feld, werden alle noch nicht retournierten Mengen retourniert.",
                                        "items": {
                                            "type": "object",
                                            "anyOf": [
                                                {
                                                    "required": [
                                                        "detail_id"
                                                    ]
                                                },
                                                {
                                                    "required": [
                                                        "artikel_id"
                                                    ]
                                                }
                                            ],
                                            "properties": {
                                                "detail_id": {
                                                    "type": "integer",
                                                    "description": "Eindeutige Bestellpositions-ID"
                                                },
                                                "artikel_id": {
                                                    "type": "integer",
                                                    "description": "Alternativ zur detail_id; muss innerhalb der Bestellung eindeutig sein"
                                                },
                                                "quantity": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "depot_id": {
                                                    "type": "integer",
                                                    "minimum": 1
                                                },
                                                "return_to_stock": {
                                                    "type": "boolean",
                                                    "description": "Ware wieder in das angegebene Lager buchen"
                                                },
                                                "reason_id": {
                                                    "type": "integer",
                                                    "enum": [
                                                        1,
                                                        2,
                                                        3,
                                                        4,
                                                        5,
                                                        6
                                                    ]
                                                },
                                                "reason": {
                                                    "type": "string",
                                                    "description": "Alternativ zur reason_id: Name eines vorhandenen Retourengrunds"
                                                },
                                                "comment": {
                                                    "type": "string"
                                                }
                                            },
                                            "required": [
                                                "quantity"
                                            ]
                                        }
                                    },
                                    "depot_id": {
                                        "type": "integer",
                                        "description": "Standardlager fuer alle Positionen"
                                    },
                                    "return_to_stock": {
                                        "type": "boolean",
                                        "description": "Standardwert fuer alle Positionen"
                                    },
                                    "reason_id": {
                                        "type": "integer",
                                        "description": "Standard-Retourengrund fuer alle Positionen",
                                        "default": 3
                                    },
                                    "reason": {
                                        "type": "string",
                                        "description": "Alternativ zur reason_id: Name eines vorhandenen Retourengrunds"
                                    },
                                    "comment": {
                                        "type": "string",
                                        "description": "Standardkommentar fuer alle Positionen"
                                    },
                                    "refund": {
                                        "type": "boolean",
                                        "description": "Refund ueber den vorhandenen TikTok-Retourenprozess anfordern; fuer andere Bestellarten nicht unterstuetzt",
                                        "default": false
                                    }
                                },
                                "additionalProperties": false
                            },
                            "examples": {
                                "teilretoure": {
                                    "summary": "Teilretoure mit Lagerbuchung",
                                    "value": {
                                        "positions": [
                                            {
                                                "detail_id": 501,
                                                "artikel_id": 1001,
                                                "quantity": 1,
                                                "depot_id": 1,
                                                "return_to_stock": true,
                                                "reason_id": 1,
                                                "comment": "Unbenutzt zurueckgesendet"
                                            }
                                        ],
                                        "refund": false
                                    }
                                },
                                "vollretoure": {
                                    "summary": "Alle noch retourenfaehigen Mengen retournieren",
                                    "value": {
                                        "depot_id": 1,
                                        "return_to_stock": true,
                                        "reason_id": 1,
                                        "comment": "Komplette Bestellung retourniert",
                                        "refund": false
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "orders.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "orders.create"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/ordershippinglists": {
            "get": {
                "tags": [
                    "ordershippinglists"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/ordershippinglists/1"
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Express"
                                                    },
                                                    "status_ids": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "integer"
                                                        },
                                                        "example": [
                                                            1,
                                                            2
                                                        ]
                                                    },
                                                    "sort_desc": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "selected_depot_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/ordershippinglists/1",
                                            "name": "Express",
                                            "status_ids": [
                                                1,
                                                2
                                            ],
                                            "sort_desc": 1,
                                            "selected_depot_id": 1
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Ordershippinglists abrufen.",
                "description": "Liefert eine paginierte Liste fuer Ordershippinglists.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetOrdershippinglistsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/ordershippinglists/{id}": {
            "get": {
                "tags": [
                    "ordershippinglists"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/ordershippinglists/1"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Express"
                                                },
                                                "status_ids": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "integer"
                                                    },
                                                    "example": [
                                                        1,
                                                        2
                                                    ]
                                                },
                                                "sort_desc": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "show_bill": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "hide_not_shippable": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "hide_part_shippable": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "selected_depot_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "show_address_lists": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "status_names": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                },
                                                "selected_depot_name": {
                                                    "type": "string",
                                                    "example": "Hauptlager"
                                                },
                                                "is_standard_list": {
                                                    "type": "boolean",
                                                    "example": false
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/ordershippinglists/1",
                                        "name": "Express",
                                        "status_ids": [
                                            1,
                                            2
                                        ],
                                        "sort_desc": 1,
                                        "show_bill": 1,
                                        "hide_not_shippable": 0,
                                        "hide_part_shippable": 0,
                                        "selected_depot_id": 1,
                                        "show_address_lists": 0,
                                        "status_names": [
                                            {
                                                "id": 1,
                                                "name": "Offen"
                                            }
                                        ],
                                        "selected_depot_name": "Hauptlager",
                                        "is_standard_list": false
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Ordershippinglists Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Ordershippinglists.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetOrdershippinglistsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/ordershippinglists/search": {
            "get": {
                "tags": [
                    "ordershippinglists"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/ordershippinglists/1"
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Express"
                                                    },
                                                    "status_ids": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "integer"
                                                        },
                                                        "example": [
                                                            1,
                                                            2
                                                        ]
                                                    },
                                                    "sort_desc": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "selected_depot_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/ordershippinglists/1",
                                            "name": "Express",
                                            "status_ids": [
                                                1,
                                                2
                                            ],
                                            "sort_desc": 1,
                                            "selected_depot_id": 1
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Ordershippinglists suchen.",
                "description": "Sucht Datensaetze fuer Ordershippinglists anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetOrdershippinglistsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/orderstatusemails": {
            "get": {
                "tags": [
                    "orderstatusemails"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "v2/docs/returns/Orderstatusemails/get_orderstatusemails_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://example.org/api/v2/private/orderstatusemails/1",
                                            "name": "status_1",
                                            "subject": "Deine Bestellung wurde versendet",
                                            "multishop_id": 1,
                                            "lang_id": 1
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Orderstatusemails abrufen.",
                "description": "Liefert eine paginierte Liste fuer Orderstatusemails.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetOrderstatusemailsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "orderstatusemails"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "v2/docs/returns/Orderstatusemails/get_orderstatusemails_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "subject": "Deine Bestellung wurde versendet",
                                    "content_html": "<p>Deine Bestellung wurde versendet.</p>",
                                    "content_text": "Deine Bestellung wurde versendet.",
                                    "add_invoice": true
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Orderstatusemails anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Orderstatusemails.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostOrderstatusemailsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "subject",
                                    "content_html",
                                    "content_text"
                                ],
                                "properties": {
                                    "multishop_id": {
                                        "type": "integer"
                                    },
                                    "lang_id": {
                                        "type": "integer"
                                    },
                                    "subject": {
                                        "type": "string"
                                    },
                                    "content_html": {
                                        "type": "string"
                                    },
                                    "content_text": {
                                        "type": "string"
                                    },
                                    "sender_name": {
                                        "type": "string"
                                    },
                                    "sender_email": {
                                        "type": "string"
                                    },
                                    "reply_to": {
                                        "type": "string"
                                    },
                                    "bcc_emails": {
                                        "type": "string"
                                    },
                                    "add_invoice": {
                                        "type": "boolean"
                                    },
                                    "additional_template_id": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/orderstatusemails/{id}": {
            "get": {
                "tags": [
                    "orderstatusemails"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "v2/docs/returns/Orderstatusemails/get_orderstatusemails_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "location": "https://example.org/api/v2/private/orderstatusemails/1",
                                        "name": "status_1",
                                        "subject": "Deine Bestellung wurde versendet",
                                        "multishop_id": 1,
                                        "lang_id": 1,
                                        "sender_name": "Shop Team",
                                        "sender_email": "shop@example.org",
                                        "reply_to": "support@example.org",
                                        "bcc_emails": "",
                                        "add_invoice": true,
                                        "additional_template_id": 0,
                                        "assigned_order_statuses": [
                                            {
                                                "id": 3,
                                                "location": "https://example.org/api/v2/private/orderstatuses/3",
                                                "name": "Versendet",
                                                "frontend_name": "Versendet"
                                            }
                                        ],
                                        "content_html": "<p>Deine Bestellung wurde versendet.</p>",
                                        "content_text": "Deine Bestellung wurde versendet.",
                                        "multishop_location": "https://example.org/api/v2/private/multishops/1",
                                        "language_location": "https://example.org/api/v2/private/languages/1"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Orderstatusemails Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Orderstatusemails.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetOrderstatusemailsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "orderstatusemails"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "v2/docs/returns/Orderstatusemails/get_orderstatusemails_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "subject": "Deine Bestellung wurde versendet",
                                    "content_html": "<p>Deine Bestellung wurde versendet.</p>",
                                    "content_text": "Deine Bestellung wurde versendet.",
                                    "add_invoice": true
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Orderstatusemails aktualisieren.",
                "description": "Schreibt die uebergebenen Felder fuer Orderstatusemails.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutOrderstatusemailsDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "subject",
                                    "content_html",
                                    "content_text"
                                ],
                                "properties": {
                                    "multishop_id": {
                                        "type": "integer"
                                    },
                                    "lang_id": {
                                        "type": "integer"
                                    },
                                    "subject": {
                                        "type": "string"
                                    },
                                    "content_html": {
                                        "type": "string"
                                    },
                                    "content_text": {
                                        "type": "string"
                                    },
                                    "sender_name": {
                                        "type": "string"
                                    },
                                    "sender_email": {
                                        "type": "string"
                                    },
                                    "reply_to": {
                                        "type": "string"
                                    },
                                    "bcc_emails": {
                                        "type": "string"
                                    },
                                    "add_invoice": {
                                        "type": "boolean"
                                    },
                                    "additional_template_id": {
                                        "type": "integer"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "orderstatusemails"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Orderstatusemails loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Orderstatusemails.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteOrderstatusemailsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/orderstatusemails/search": {
            "get": {
                "tags": [
                    "orderstatusemails"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "v2/docs/returns/Orderstatusemails/get_orderstatusemails_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://example.org/api/v2/private/orderstatusemails/1",
                                            "name": "status_1",
                                            "subject": "Deine Bestellung wurde versendet",
                                            "multishop_id": 1,
                                            "lang_id": 1
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Orderstatusemails suchen.",
                "description": "Sucht Datensaetze fuer Orderstatusemails anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetOrderstatusemailsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/orderstatuses": {
            "get": {
                "tags": [
                    "orderstatuses"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "description": "Id des Objects",
                                                "example": 1
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri",
                                                "description": "API Url zum Object",
                                                "example": "https://localhost/shop/api/v2/private/orderstatuses/1"
                                            },
                                            "name": {
                                                "type": "string",
                                                "description": "Interne Bezeichnung des Bestellstatus",
                                                "example": "versendet"
                                            },
                                            "frontend_name": {
                                                "type": "string",
                                                "description": "Frontend-Bezeichnung des Bestellstatus",
                                                "example": "Ihre Bestellung wurde versendet"
                                            },
                                            "email_template": {
                                                "type": "string",
                                                "description": "Zugeordnete E-Mailvorlage",
                                                "example": "bestellung_versendet"
                                            },
                                            "show_download": {
                                                "type": "boolean",
                                                "description": "Downloads bei diesem Status anzeigen",
                                                "example": true
                                            },
                                            "fixed_reservation": {
                                                "type": "boolean",
                                                "description": "Bestand fuer diesen Status fest reservieren",
                                                "example": false
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/orderstatuses/1",
                                        "name": "offen",
                                        "frontend_name": "Bestellung eingegangen",
                                        "email_template": "bestellung_offen",
                                        "show_download": false,
                                        "fixed_reservation": true
                                    },
                                    {
                                        "id": 2,
                                        "location": "https://localhost/shop/api/v2/private/orderstatuses/2",
                                        "name": "versendet",
                                        "frontend_name": "Ihre Bestellung wurde versendet",
                                        "email_template": "bestellung_versendet",
                                        "show_download": true,
                                        "fixed_reservation": false
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Bestellstatus abrufen.",
                "description": "Liefert Daten fuer mehrere Bestellstatus.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetOrderstatusesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "frontend_name": {
                                    "type": "string"
                                },
                                "email": {
                                    "type": "string"
                                },
                                "show_download": {
                                    "type": "boolean"
                                },
                                "fixed_reservation": {
                                    "type": "boolean"
                                }
                            }
                        },
                        "description": "Filtert nach Bezeichnung, Frontend-Bezeichnung, E-Mailvorlage oder Statusflags"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "orderstatuses.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "orderstatuses.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/orderstatuses/{id}": {
            "get": {
                "tags": [
                    "orderstatuses"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": 1
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Object",
                                            "example": "https://localhost/shop/api/v2/private/orderstatuses/1"
                                        },
                                        "name": {
                                            "type": "string",
                                            "description": "Interne Bezeichnung des Bestellstatus",
                                            "example": "versendet"
                                        },
                                        "frontend_name": {
                                            "type": "string",
                                            "description": "Frontend-Bezeichnung des Bestellstatus",
                                            "example": "Ihre Bestellung wurde versendet"
                                        },
                                        "sort_order": {
                                            "type": "integer",
                                            "description": "Sortierung des Bestellstatus",
                                            "example": 10
                                        },
                                        "email_template": {
                                            "type": "string",
                                            "description": "Zugeordnete E-Mailvorlage",
                                            "example": "bestellung_versendet"
                                        },
                                        "email_subject": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "Betreff der zugeordneten E-Mailvorlage",
                                            "example": "Ihre Bestellung wurde versendet"
                                        },
                                        "show_download": {
                                            "type": "boolean",
                                            "description": "Downloads bei diesem Status anzeigen",
                                            "example": true
                                        },
                                        "fixed_reservation": {
                                            "type": "boolean",
                                            "description": "Bestand fuer diesen Status fest reservieren",
                                            "example": false
                                        },
                                        "brickfox_name": {
                                            "type": "string",
                                            "description": "Optionale Brickfox-Bezeichnung",
                                            "example": "shipped"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/orderstatuses/1",
                                    "name": "versendet",
                                    "frontend_name": "Ihre Bestellung wurde versendet",
                                    "sort_order": 10,
                                    "email_template": "bestellung_versendet",
                                    "email_subject": "Ihre Bestellung wurde versendet",
                                    "show_download": true,
                                    "fixed_reservation": false,
                                    "brickfox_name": "shipped"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Bestellstatus abrufen.",
                "description": "Liefert Daten zu einem Bestellstatus.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetOrderstatusesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Bestellstatus-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "orderstatuses.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "orderstatuses.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/orderstatuses/search": {
            "get": {
                "tags": [
                    "orderstatuses"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "v2/docs/returns/Orderstatuses/get_orderstatus.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 2,
                                        "location": "https://localhost/shop/api/v2/private/orderstatuses/2",
                                        "name": "versendet",
                                        "frontend_name": "Ihre Bestellung wurde versendet",
                                        "sort_order": 20,
                                        "email_template": "bestellung_versendet",
                                        "email_subject": "Ihre Bestellung wurde versendet",
                                        "show_download": true,
                                        "fixed_reservation": false,
                                        "brickfox_name": "shipped"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Bestellstatus nach einem String.",
                "description": "Sucht in Bestellstatus nach interner oder Frontend-Bezeichnung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetOrderstatusesSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "orderstatuses.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "orderstatuses.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/packagedimensions": {
            "get": {
                "tags": [
                    "packagedimensions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "get_packagedimension"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "/private/packagedimensions/1",
                                        "name": "Small parcel",
                                        "length": 20,
                                        "width": 15,
                                        "height": 10,
                                        "amazon_prime_service_id": "STANDARD",
                                        "amazon_prime_express_service_id": "EXPRESS"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Paketgroessen abrufen.",
                "description": "Liefert Daten fuer mehrere Paketgroessen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetPackagedimensionsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "packagedimensions.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "packagedimensions.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "packagedimensions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Paketgroesse erstellen.",
                "description": "Erstellt eine Paketgroesse.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostPackagedimensionsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name",
                                    "length",
                                    "width",
                                    "height"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Package dimension name"
                                    },
                                    "length": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Length"
                                    },
                                    "width": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Width"
                                    },
                                    "height": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Height"
                                    },
                                    "amazon_prime_service_id": {
                                        "type": "string",
                                        "description": "Amazon Prime standard service id"
                                    },
                                    "amazon_prime_express_service_id": {
                                        "type": "string",
                                        "description": "Amazon Prime express service id"
                                    }
                                }
                            },
                            "example": {
                                "name": "Small parcel",
                                "length": 20,
                                "width": 15,
                                "height": 10,
                                "amazon_prime_service_id": "STANDARD",
                                "amazon_prime_express_service_id": "EXPRESS"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "packagedimensions.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "packagedimensions.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/packagedimensions/{id}": {
            "get": {
                "tags": [
                    "packagedimensions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Unique package dimension id"
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API resource location"
                                        },
                                        "name": {
                                            "type": "string",
                                            "description": "Package dimension name"
                                        },
                                        "length": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Length"
                                        },
                                        "width": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Width"
                                        },
                                        "height": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Height"
                                        },
                                        "amazon_prime_service_id": {
                                            "type": "string",
                                            "description": "Amazon Prime standard service id"
                                        },
                                        "amazon_prime_express_service_id": {
                                            "type": "string",
                                            "description": "Amazon Prime express service id"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "/private/packagedimensions/1",
                                    "name": "Small parcel",
                                    "length": 20,
                                    "width": 15,
                                    "height": 10,
                                    "amazon_prime_service_id": "STANDARD",
                                    "amazon_prime_express_service_id": "EXPRESS"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Paketgroesse abrufen.",
                "description": "Liefert Daten zu einer Paketgroesse.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetPackagedimensionsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Paketgroessen-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "packagedimensions.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "packagedimensions.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "packagedimensions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Paketgroesse aktualisieren.",
                "description": "Aktualisiert eine Paketgroesse.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutPackagedimensionsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Paketgroessen-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Package dimension name"
                                    },
                                    "length": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Length"
                                    },
                                    "width": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Width"
                                    },
                                    "height": {
                                        "type": "number",
                                        "format": "float",
                                        "description": "Height"
                                    },
                                    "amazon_prime_service_id": {
                                        "type": "string",
                                        "description": "Amazon Prime standard service id"
                                    },
                                    "amazon_prime_express_service_id": {
                                        "type": "string",
                                        "description": "Amazon Prime express service id"
                                    }
                                }
                            },
                            "example": {
                                "name": "Small parcel",
                                "length": 20,
                                "width": 15,
                                "height": 10
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "packagedimensions.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "packagedimensions.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "packagedimensions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Paketgroesse loeschen.",
                "description": "Loescht eine Paketgroesse.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeletePackagedimensionsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Paketgroessen-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "packagedimensions.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "packagedimensions.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/packagedimensions/search": {
            "get": {
                "tags": [
                    "packagedimensions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "get_packagedimension"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "/private/packagedimensions/1",
                                        "name": "Small parcel",
                                        "length": 20,
                                        "width": 15,
                                        "height": 10,
                                        "amazon_prime_service_id": "STANDARD",
                                        "amazon_prime_express_service_id": "EXPRESS"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Paketgroessen nach einem String.",
                "description": "Sucht in Paketgroessen nach Bezeichnung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetPackagedimensionsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "packagedimensions.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "packagedimensions.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/packagings": {
            "get": {
                "tags": [
                    "packagings"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/packagings/1"
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Glasflasche 500ml"
                                                    },
                                                    "packaging_type_id": {
                                                        "type": "integer",
                                                        "example": 0
                                                    },
                                                    "packaging_type_name": {
                                                        "type": "string",
                                                        "example": "Glas"
                                                    },
                                                    "weight": {
                                                        "type": "number",
                                                        "example": 0.25
                                                    },
                                                    "weight_unit": {
                                                        "type": "string",
                                                        "example": "kg"
                                                    },
                                                    "weight_display": {
                                                        "type": "string",
                                                        "example": "0.25 kg"
                                                    },
                                                    "element_count": {
                                                        "type": "integer",
                                                        "example": 2
                                                    },
                                                    "elements": {
                                                        "type": "array",
                                                        "description": "Nur bei details=true enthalten.",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "id": {
                                                                    "type": "integer"
                                                                },
                                                                "name": {
                                                                    "type": "string"
                                                                },
                                                                "packaging_type_id": {
                                                                    "type": "integer"
                                                                },
                                                                "packaging_type_name": {
                                                                    "type": "string"
                                                                },
                                                                "weight": {
                                                                    "type": "number"
                                                                },
                                                                "weight_unit": {
                                                                    "type": "string"
                                                                },
                                                                "weight_display": {
                                                                    "type": "string"
                                                                },
                                                                "position": {
                                                                    "type": "integer"
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/packagings/1",
                                            "name": "Creatine 500g",
                                            "packaging_type_id": 4,
                                            "weight": 42.5,
                                            "weight_unit": "g",
                                            "element_count": 3
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Packagings abrufen.",
                "description": "Liefert eine paginierte Liste der Verpackungseinheiten. Mit details=true werden die einzelnen Bestandteile ausgegeben.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetPackagingsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt die einzelnen Verpackungsbestandteile aus."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "packagings"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/packagings/1"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Glasflasche 500ml"
                                                },
                                                "packaging_type_id": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "packaging_type_name": {
                                                    "type": "string",
                                                    "example": "Glas"
                                                },
                                                "weight": {
                                                    "type": "number",
                                                    "example": 0.25
                                                },
                                                "weight_unit": {
                                                    "type": "string",
                                                    "example": "kg"
                                                },
                                                "weight_display": {
                                                    "type": "string",
                                                    "example": "0.25 kg"
                                                },
                                                "element_count": {
                                                    "type": "integer",
                                                    "example": 2
                                                },
                                                "elements": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 10
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Dose"
                                                            },
                                                            "packaging_type_id": {
                                                                "type": "integer",
                                                                "example": 4
                                                            },
                                                            "packaging_type_name": {
                                                                "type": "string",
                                                                "example": "Kunststoffe"
                                                            },
                                                            "weight": {
                                                                "type": "number",
                                                                "example": 42.5
                                                            },
                                                            "weight_unit": {
                                                                "type": "string",
                                                                "example": "g"
                                                            },
                                                            "weight_display": {
                                                                "type": "string",
                                                                "example": "42.5 g"
                                                            },
                                                            "position": {
                                                                "type": "integer",
                                                                "example": 1
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "name": "Creatine 500g",
                                    "elements": [
                                        {
                                            "name": "Dose",
                                            "packaging_type_id": 4,
                                            "weight": 42.5,
                                            "weight_unit": "g",
                                            "position": 1
                                        },
                                        {
                                            "name": "Deckel",
                                            "packaging_type_id": 4,
                                            "weight": 5,
                                            "weight_unit": "g",
                                            "position": 2
                                        },
                                        {
                                            "name": "Sleeve",
                                            "packaging_type_id": 1,
                                            "weight": 12,
                                            "weight_unit": "g",
                                            "position": 3
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Packagings anlegen.",
                "description": "Legt eine Verpackungseinheit mit einem oder mehreren Bestandteilen an. Die bisherigen Gewichtsfelder bleiben fuer einteilige Aufrufe kompatibel.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostPackagingsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "anyOf": [
                                    {
                                        "required": [
                                            "elements"
                                        ]
                                    },
                                    {
                                        "required": [
                                            "weight"
                                        ]
                                    }
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255,
                                        "example": "Creatine 500g"
                                    },
                                    "elements": {
                                        "type": "array",
                                        "minItems": 1,
                                        "items": {
                                            "type": "object",
                                            "required": [
                                                "name",
                                                "packaging_type_id",
                                                "weight",
                                                "weight_unit"
                                            ],
                                            "properties": {
                                                "name": {
                                                    "type": "string",
                                                    "maxLength": 255,
                                                    "example": "Dose"
                                                },
                                                "packaging_type_id": {
                                                    "type": "integer",
                                                    "minimum": 0,
                                                    "maximum": 7,
                                                    "example": 4
                                                },
                                                "weight": {
                                                    "type": "number",
                                                    "exclusiveMinimum": 0,
                                                    "multipleOf": 1.0e-6,
                                                    "example": 42.5
                                                },
                                                "weight_unit": {
                                                    "type": "string",
                                                    "enum": [
                                                        "kg",
                                                        "g",
                                                        "mg"
                                                    ],
                                                    "example": "g"
                                                },
                                                "position": {
                                                    "type": "integer",
                                                    "minimum": 0,
                                                    "maximum": 65535,
                                                    "example": 1
                                                }
                                            }
                                        }
                                    },
                                    "packaging_type_id": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 7,
                                        "description": "Legacy-Feld: erzeugt ohne elements[] genau einen Bestandteil.",
                                        "example": 4
                                    },
                                    "weight": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "multipleOf": 1.0e-6,
                                        "description": "Legacy-Feld: erzeugt ohne elements[] genau einen Bestandteil.",
                                        "example": 42.5
                                    },
                                    "weight_unit": {
                                        "type": "string",
                                        "enum": [
                                            "kg",
                                            "g",
                                            "mg"
                                        ],
                                        "description": "Legacy-Feld: erzeugt ohne elements[] genau einen Bestandteil.",
                                        "example": "g"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/packagings/{id}": {
            "get": {
                "tags": [
                    "packagings"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/packagings/1"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Glasflasche 500ml"
                                                },
                                                "packaging_type_id": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "packaging_type_name": {
                                                    "type": "string",
                                                    "example": "Glas"
                                                },
                                                "weight": {
                                                    "type": "number",
                                                    "example": 0.25
                                                },
                                                "weight_unit": {
                                                    "type": "string",
                                                    "example": "kg"
                                                },
                                                "weight_display": {
                                                    "type": "string",
                                                    "example": "0.25 kg"
                                                },
                                                "element_count": {
                                                    "type": "integer",
                                                    "example": 2
                                                },
                                                "elements": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 10
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Dose"
                                                            },
                                                            "packaging_type_id": {
                                                                "type": "integer",
                                                                "example": 4
                                                            },
                                                            "packaging_type_name": {
                                                                "type": "string",
                                                                "example": "Kunststoffe"
                                                            },
                                                            "weight": {
                                                                "type": "number",
                                                                "example": 42.5
                                                            },
                                                            "weight_unit": {
                                                                "type": "string",
                                                                "example": "g"
                                                            },
                                                            "weight_display": {
                                                                "type": "string",
                                                                "example": "42.5 g"
                                                            },
                                                            "position": {
                                                                "type": "integer",
                                                                "example": 1
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/packagings/1",
                                        "name": "Creatine 500g",
                                        "packaging_type_id": 4,
                                        "packaging_type_name": "Kunststoffe",
                                        "weight": 42.5,
                                        "weight_unit": "g",
                                        "weight_display": "42.5 g",
                                        "element_count": 3,
                                        "elements": [
                                            {
                                                "id": 10,
                                                "name": "Dose",
                                                "packaging_type_id": 4,
                                                "packaging_type_name": "Kunststoffe",
                                                "weight": 42.5,
                                                "weight_unit": "g",
                                                "weight_display": "42.5 g",
                                                "position": 1
                                            },
                                            {
                                                "id": 11,
                                                "name": "Deckel",
                                                "packaging_type_id": 4,
                                                "packaging_type_name": "Kunststoffe",
                                                "weight": 5,
                                                "weight_unit": "g",
                                                "weight_display": "5 g",
                                                "position": 2
                                            },
                                            {
                                                "id": 12,
                                                "name": "Sleeve",
                                                "packaging_type_id": 1,
                                                "packaging_type_name": "PPK",
                                                "weight": 12,
                                                "weight_unit": "g",
                                                "weight_display": "12 g",
                                                "position": 3
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Packagings Detail abrufen.",
                "description": "Liefert eine Verpackungseinheit einschliesslich ihrer einzelnen Bestandteile.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetPackagingsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "packagings"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/packagings/1"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Glasflasche 500ml"
                                                },
                                                "packaging_type_id": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "packaging_type_name": {
                                                    "type": "string",
                                                    "example": "Glas"
                                                },
                                                "weight": {
                                                    "type": "number",
                                                    "example": 0.25
                                                },
                                                "weight_unit": {
                                                    "type": "string",
                                                    "example": "kg"
                                                },
                                                "weight_display": {
                                                    "type": "string",
                                                    "example": "0.25 kg"
                                                },
                                                "element_count": {
                                                    "type": "integer",
                                                    "example": 2
                                                },
                                                "elements": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 10
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Dose"
                                                            },
                                                            "packaging_type_id": {
                                                                "type": "integer",
                                                                "example": 4
                                                            },
                                                            "packaging_type_name": {
                                                                "type": "string",
                                                                "example": "Kunststoffe"
                                                            },
                                                            "weight": {
                                                                "type": "number",
                                                                "example": 42.5
                                                            },
                                                            "weight_unit": {
                                                                "type": "string",
                                                                "example": "g"
                                                            },
                                                            "weight_display": {
                                                                "type": "string",
                                                                "example": "42.5 g"
                                                            },
                                                            "position": {
                                                                "type": "integer",
                                                                "example": 1
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "name": "Creatine 500g",
                                    "elements": [
                                        {
                                            "name": "Dose",
                                            "packaging_type_id": 4,
                                            "weight": 42.5,
                                            "weight_unit": "g",
                                            "position": 1
                                        },
                                        {
                                            "name": "Deckel",
                                            "packaging_type_id": 4,
                                            "weight": 5,
                                            "weight_unit": "g",
                                            "position": 2
                                        },
                                        {
                                            "name": "Sleeve",
                                            "packaging_type_id": 1,
                                            "weight": 12,
                                            "weight_unit": "g",
                                            "position": 3
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Packagings aktualisieren.",
                "description": "Aktualisiert die Verpackungseinheit. elements ist bei Uebergabe immer die vollstaendige neue Zusammensetzung.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutPackagingsDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "maxLength": 255,
                                        "example": "Creatine 500g"
                                    },
                                    "elements": {
                                        "type": "array",
                                        "minItems": 1,
                                        "description": "Vollstaendige neue Zusammensetzung. Vorhandene IDs bleiben erhalten; nicht uebergebene Bestandteile werden entfernt.",
                                        "items": {
                                            "type": "object",
                                            "required": [
                                                "name",
                                                "packaging_type_id",
                                                "weight",
                                                "weight_unit"
                                            ],
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "minimum": 1,
                                                    "description": "Optionale ID eines bereits zu dieser Verpackung gehoerenden Bestandteils."
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "maxLength": 255
                                                },
                                                "packaging_type_id": {
                                                    "type": "integer",
                                                    "minimum": 0,
                                                    "maximum": 7
                                                },
                                                "weight": {
                                                    "type": "number",
                                                    "exclusiveMinimum": 0,
                                                    "multipleOf": 1.0e-6
                                                },
                                                "weight_unit": {
                                                    "type": "string",
                                                    "enum": [
                                                        "kg",
                                                        "g",
                                                        "mg"
                                                    ]
                                                },
                                                "position": {
                                                    "type": "integer",
                                                    "minimum": 0,
                                                    "maximum": 65535
                                                }
                                            }
                                        }
                                    },
                                    "packaging_type_id": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "maximum": 7,
                                        "description": "Legacy-Feld; bei mehrteiligen Verpackungen muss elements[] verwendet werden."
                                    },
                                    "weight": {
                                        "type": "number",
                                        "exclusiveMinimum": 0,
                                        "multipleOf": 1.0e-6,
                                        "description": "Legacy-Feld; bei mehrteiligen Verpackungen muss elements[] verwendet werden."
                                    },
                                    "weight_unit": {
                                        "type": "string",
                                        "enum": [
                                            "kg",
                                            "g",
                                            "mg"
                                        ],
                                        "description": "Legacy-Feld; bei mehrteiligen Verpackungen muss elements[] verwendet werden."
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "packagings"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Packagings loeschen.",
                "description": "Loescht die Verpackungseinheit und ihre Bestandteile, sofern sie keiner Produktvariante zugeordnet ist.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeletePackagingsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/packagings/search": {
            "get": {
                "tags": [
                    "packagings"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/packagings/1"
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Glasflasche 500ml"
                                                    },
                                                    "packaging_type_id": {
                                                        "type": "integer",
                                                        "example": 0
                                                    },
                                                    "weight": {
                                                        "type": "number",
                                                        "example": 0.25
                                                    },
                                                    "weight_unit": {
                                                        "type": "string",
                                                        "example": "kg"
                                                    },
                                                    "element_count": {
                                                        "type": "integer",
                                                        "example": 2
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/packagings/1",
                                            "name": "Creatine 500g",
                                            "packaging_type_id": 4,
                                            "weight": 42.5,
                                            "weight_unit": "g",
                                            "element_count": 3
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Packagings suchen.",
                "description": "Sucht Datensaetze fuer Packagings anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetPackagingsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/page404": {
            "get": {
                "tags": [
                    "page404"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "v2/docs/returns/Page404/get_page404_entry.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/page404/1",
                                        "requested_url": "/alte-nicht-mehr-vorhandene-seite",
                                        "ip": "127.0.0.1",
                                        "multishop_id": 1,
                                        "created_at": "2026-06-11 10:30:00"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere 404-Seiten abrufen.",
                "description": "Liefert Daten fuer mehrere erfasste 404-Seiten.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetPage404Private",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "requested_url": {
                                    "type": "string"
                                },
                                "ip": {
                                    "type": "string"
                                },
                                "multishop_id": {
                                    "type": "integer"
                                },
                                "date_from": {
                                    "type": "string"
                                },
                                "date_to": {
                                    "type": "string"
                                }
                            }
                        },
                        "description": "Filtert nach URL, IP, Multishop oder Datum"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "page404.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "page404.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/page404/{id}": {
            "get": {
                "tags": [
                    "page404"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": 1
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Object",
                                            "example": "https://localhost/shop/api/v2/private/page404/1"
                                        },
                                        "requested_url": {
                                            "type": "string",
                                            "description": "Angefragte nicht gefundene URL",
                                            "example": "/alte-nicht-mehr-vorhandene-seite"
                                        },
                                        "ip": {
                                            "type": "string",
                                            "description": "IP-Adresse des Besuchers",
                                            "example": "127.0.0.1"
                                        },
                                        "multishop_id": {
                                            "type": "integer",
                                            "description": "Id des Multishops",
                                            "example": 1
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "description": "Erfassungsdatum",
                                            "example": "2026-06-11 10:30:00"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/page404/1",
                                    "requested_url": "/alte-nicht-mehr-vorhandene-seite",
                                    "ip": "127.0.0.1",
                                    "multishop_id": 1,
                                    "created_at": "2026-06-11 10:30:00"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer 404-Seite abrufen.",
                "description": "Liefert Daten zu einer erfassten 404-Seite.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetPage404DetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Page404-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "page404.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "page404.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "page404"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "404-Seite loeschen.",
                "description": "Loescht eine erfasste 404-Seite.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeletePage404DetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Page404-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "page404.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "page404.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/page404/search": {
            "get": {
                "tags": [
                    "page404"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "v2/docs/returns/Page404/get_page404_entry.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/page404/1",
                                        "requested_url": "/alte-nicht-mehr-vorhandene-seite",
                                        "ip": "127.0.0.1",
                                        "multishop_id": 1,
                                        "created_at": "2026-06-11 10:30:00"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in 404-Seiten nach einem String.",
                "description": "Sucht in 404-Seiten nach angefragter URL.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetPage404SearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "page404.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "page404.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/paymenttypes": {
            "get": {
                "tags": [
                    "paymenttypes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "name": {
                                                "type": "string"
                                            },
                                            "module_id": {
                                                "type": "string"
                                            },
                                            "active": {
                                                "type": "boolean"
                                            },
                                            "only_backend": {
                                                "type": "boolean"
                                            },
                                            "costs": {
                                                "type": "number"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/paymenttypes/1",
                                        "name": "Vorkasse",
                                        "module_id": "Vorkasse",
                                        "active": true,
                                        "only_backend": false,
                                        "costs": 0
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Zahlungsarten abrufen.",
                "description": "Liefert Daten fuer mehrere Zahlungsarten. Schreibaktionen sind bewusst nicht Teil dieses Controllers, weil Zahlungsarten in Module, Kunden, Kundengruppen, Versandzonen und Bestellungen eingreifen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetPaymenttypesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "module_id": {
                                    "type": "string"
                                },
                                "active": {
                                    "type": "boolean"
                                },
                                "only_backend": {
                                    "type": "boolean"
                                }
                            }
                        },
                        "description": "Filtert nach Bezeichnung, Modul-ID oder Statusflags"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "paymenttypes.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "paymenttypes.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/paymenttypes/{id}": {
            "get": {
                "tags": [
                    "paymenttypes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "module_id": {
                                            "type": "string"
                                        },
                                        "value": {
                                            "type": "string"
                                        },
                                        "active": {
                                            "type": "boolean"
                                        },
                                        "only_backend": {
                                            "type": "boolean"
                                        },
                                        "sort_order": {
                                            "type": "integer"
                                        },
                                        "costs": {
                                            "type": "number"
                                        },
                                        "possible_from": {
                                            "type": "number"
                                        },
                                        "possible_to": {
                                            "type": "number"
                                        },
                                        "tax_id": {
                                            "type": "integer"
                                        },
                                        "tax_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "cash_discount": {
                                            "type": "number"
                                        },
                                        "image": {
                                            "type": "object",
                                            "properties": {
                                                "local": {
                                                    "type": "string"
                                                },
                                                "external": {
                                                    "type": "string"
                                                },
                                                "url": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "hint": {
                                            "type": "string"
                                        },
                                        "email_hint": {
                                            "type": "string"
                                        },
                                        "orderstatus_create_id": {
                                            "type": "integer"
                                        },
                                        "orderstatus_create_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "orderstatus_after_send_id": {
                                            "type": "integer"
                                        },
                                        "orderstatus_after_send_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "debtor_account_number": {
                                            "type": "string"
                                        },
                                        "shipping_list_id": {
                                            "type": "integer"
                                        },
                                        "shipping_list_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/paymenttypes/1",
                                    "name": "Vorkasse",
                                    "module_id": "Vorkasse",
                                    "value": "",
                                    "active": true,
                                    "only_backend": false,
                                    "sort_order": 10,
                                    "costs": 0,
                                    "possible_from": 0,
                                    "possible_to": 0,
                                    "tax_id": 1,
                                    "tax_location": "https://localhost/shop/api/v2/private/taxes/1",
                                    "cash_discount": 0,
                                    "image": {
                                        "local": "",
                                        "external": "",
                                        "url": ""
                                    },
                                    "hint": "",
                                    "email_hint": "",
                                    "orderstatus_create_id": 0,
                                    "orderstatus_create_location": null,
                                    "orderstatus_after_send_id": 0,
                                    "orderstatus_after_send_location": null,
                                    "debtor_account_number": "",
                                    "shipping_list_id": 0,
                                    "shipping_list_location": "https://localhost/shop/api/v2/private/shippinglists/1"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Zahlungsart abrufen.",
                "description": "Liefert Daten zu einer Zahlungsart inklusive Modul-, Kosten-, Steuer- und Hinweisfeldern.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetPaymenttypesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Zahlungsart-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "paymenttypes.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "paymenttypes.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/paymenttypes/search": {
            "get": {
                "tags": [
                    "paymenttypes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "module_id": {
                                            "type": "string"
                                        },
                                        "value": {
                                            "type": "string"
                                        },
                                        "active": {
                                            "type": "boolean"
                                        },
                                        "only_backend": {
                                            "type": "boolean"
                                        },
                                        "sort_order": {
                                            "type": "integer"
                                        },
                                        "costs": {
                                            "type": "number"
                                        },
                                        "possible_from": {
                                            "type": "number"
                                        },
                                        "possible_to": {
                                            "type": "number"
                                        },
                                        "tax_id": {
                                            "type": "integer"
                                        },
                                        "tax_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "cash_discount": {
                                            "type": "number"
                                        },
                                        "image": {
                                            "type": "object",
                                            "properties": {
                                                "local": {
                                                    "type": "string"
                                                },
                                                "external": {
                                                    "type": "string"
                                                },
                                                "url": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "hint": {
                                            "type": "string"
                                        },
                                        "email_hint": {
                                            "type": "string"
                                        },
                                        "orderstatus_create_id": {
                                            "type": "integer"
                                        },
                                        "orderstatus_create_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "orderstatus_after_send_id": {
                                            "type": "integer"
                                        },
                                        "orderstatus_after_send_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "debtor_account_number": {
                                            "type": "string"
                                        },
                                        "shipping_list_id": {
                                            "type": "integer"
                                        },
                                        "shipping_list_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/paymenttypes/1",
                                    "name": "Vorkasse",
                                    "module_id": "Vorkasse",
                                    "value": "",
                                    "active": true,
                                    "only_backend": false,
                                    "sort_order": 10,
                                    "costs": 0,
                                    "possible_from": 0,
                                    "possible_to": 0,
                                    "tax_id": 1,
                                    "tax_location": "https://localhost/shop/api/v2/private/taxes/1",
                                    "cash_discount": 0,
                                    "image": {
                                        "local": "",
                                        "external": "",
                                        "url": ""
                                    },
                                    "hint": "",
                                    "email_hint": "",
                                    "orderstatus_create_id": 0,
                                    "orderstatus_create_location": null,
                                    "orderstatus_after_send_id": 0,
                                    "orderstatus_after_send_location": null,
                                    "debtor_account_number": "",
                                    "shipping_list_id": 0,
                                    "shipping_list_location": "https://localhost/shop/api/v2/private/shippinglists/1"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Zahlungsarten nach einem String.",
                "description": "Sucht in Zahlungsarten nach Bezeichnung oder Modul-ID.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetPaymenttypesSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "paymenttypes.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "paymenttypes.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/pricegroups": {
            "get": {
                "tags": [
                    "pricegroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "description": "Unique price group id"
                                            },
                                            "location": {
                                                "type": "string",
                                                "description": "API resource location"
                                            },
                                            "name": {
                                                "type": "string",
                                                "description": "Price group name"
                                            },
                                            "short_name": {
                                                "type": "string",
                                                "description": "Short price group name"
                                            },
                                            "price_type_id": {
                                                "type": "integer",
                                                "description": "Price type id, 0 gross, 1 net"
                                            },
                                            "price_type_name": {
                                                "type": "string",
                                                "description": "Price type name"
                                            },
                                            "include_tax": {
                                                "type": "boolean",
                                                "description": "Whether prices include tax"
                                            },
                                            "variation_price_count": {
                                                "type": "integer",
                                                "description": "Number of assigned variation price rows"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/pricegroups/1",
                                        "name": "Wholesale",
                                        "short_name": "B2B",
                                        "include_tax": false
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Preisgruppen abrufen.",
                "description": "Liefert Daten fuer mehrere Preisgruppen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetPricegroupsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                }
                            }
                        },
                        "description": "Filtert nach Bezeichnung"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "pricegroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "pricegroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "pricegroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Preisgruppe erstellen.",
                "description": "Erstellt eine Preisgruppe. Optional koennen Preise einer vorhandenen Preisgruppe uebernommen werden.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostPricegroupsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name",
                                    "short_name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Price group name"
                                    },
                                    "short_name": {
                                        "type": "string",
                                        "description": "Short price group name"
                                    },
                                    "include_tax": {
                                        "type": "boolean",
                                        "description": "Whether prices include tax"
                                    },
                                    "price_type_id": {
                                        "type": "integer",
                                        "description": "Price type id, 0 gross, 1 net"
                                    },
                                    "copy_from_price_group_id": {
                                        "type": "integer",
                                        "description": "Existing price group id to copy variation prices from, use 0 for standard price"
                                    }
                                }
                            },
                            "example": {
                                "name": "Wholesale",
                                "short_name": "B2B",
                                "include_tax": false,
                                "copy_from_price_group_id": 0
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "pricegroups.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "pricegroups.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/pricegroups/{id}": {
            "get": {
                "tags": [
                    "pricegroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Unique price group id"
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API resource location"
                                        },
                                        "name": {
                                            "type": "string",
                                            "description": "Price group name"
                                        },
                                        "short_name": {
                                            "type": "string",
                                            "description": "Short price group name"
                                        },
                                        "price_type_id": {
                                            "type": "integer",
                                            "description": "Price type id, 0 gross, 1 net"
                                        },
                                        "price_type_name": {
                                            "type": "string",
                                            "description": "Price type name"
                                        },
                                        "include_tax": {
                                            "type": "boolean",
                                            "description": "Whether prices include tax"
                                        },
                                        "variation_price_count": {
                                            "type": "integer",
                                            "description": "Number of assigned variation price rows"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/pricegroups/1",
                                    "name": "Wholesale",
                                    "short_name": "B2B",
                                    "price_type_id": 1,
                                    "price_type_name": "net",
                                    "include_tax": false,
                                    "variation_price_count": 42
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Preisgruppe abrufen.",
                "description": "Liefert Daten zu einer Preisgruppe.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetPricegroupsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Preisgruppen-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "pricegroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "pricegroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "pricegroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Preisgruppe aktualisieren.",
                "description": "Aktualisiert eine Preisgruppe.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutPricegroupsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Preisgruppen-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Price group name"
                                    },
                                    "short_name": {
                                        "type": "string",
                                        "description": "Short price group name"
                                    },
                                    "include_tax": {
                                        "type": "boolean",
                                        "description": "Whether prices include tax"
                                    },
                                    "price_type_id": {
                                        "type": "integer",
                                        "description": "Price type id, 0 gross, 1 net"
                                    }
                                }
                            },
                            "example": {
                                "name": "Wholesale",
                                "short_name": "B2B",
                                "include_tax": false
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "pricegroups.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "pricegroups.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "pricegroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Preisgruppe loeschen.",
                "description": "Loescht eine Preisgruppe und entfernt zugehoerige Variantenpreise.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeletePricegroupsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Preisgruppen-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "pricegroups.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "pricegroups.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/pricegroups/search": {
            "get": {
                "tags": [
                    "pricegroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "description": "Unique price group id"
                                            },
                                            "location": {
                                                "type": "string",
                                                "description": "API resource location"
                                            },
                                            "name": {
                                                "type": "string",
                                                "description": "Price group name"
                                            },
                                            "short_name": {
                                                "type": "string",
                                                "description": "Short price group name"
                                            },
                                            "price_type_id": {
                                                "type": "integer",
                                                "description": "Price type id, 0 gross, 1 net"
                                            },
                                            "price_type_name": {
                                                "type": "string",
                                                "description": "Price type name"
                                            },
                                            "include_tax": {
                                                "type": "boolean",
                                                "description": "Whether prices include tax"
                                            },
                                            "variation_price_count": {
                                                "type": "integer",
                                                "description": "Number of assigned variation price rows"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/pricegroups/1",
                                        "name": "Wholesale",
                                        "short_name": "B2B",
                                        "price_type_id": 1,
                                        "price_type_name": "net",
                                        "include_tax": false,
                                        "variation_price_count": 42
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Preisgruppen nach einem String.",
                "description": "Sucht in Preisgruppen nach Bezeichnung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetPricegroupsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "pricegroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "pricegroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/printtemplates": {
            "get": {
                "tags": [
                    "printtemplates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "v2/docs/returns/Printtemplates/get_printtemplates_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://example.org/api/v2/private/printtemplates/1",
                                            "name": "print_bill_neu",
                                            "type_name": "Rechnungsvorlage",
                                            "description": "Standard Rechnung"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Printtemplates abrufen.",
                "description": "Liefert eine paginierte Liste fuer Printtemplates.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetPrinttemplatesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "printtemplates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "v2/docs/returns/Printtemplates/get_printtemplates_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "description": "Standard Rechnung",
                                    "content_html": "<h1>Rechnung</h1>"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Printtemplates anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Printtemplates.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostPrinttemplatesPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name",
                                    "description",
                                    "content_html"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "content_html": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/printtemplates/{id}": {
            "get": {
                "tags": [
                    "printtemplates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "v2/docs/returns/Printtemplates/get_printtemplates_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "data": {
                                        "id": 1,
                                        "location": "https://example.org/api/v2/private/printtemplates/1",
                                        "name": "print_bill_neu",
                                        "type_name": "Rechnungsvorlage",
                                        "description": "Standard Rechnung",
                                        "content_html": "<h1>Rechnung</h1>"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Printtemplates Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Printtemplates.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetPrinttemplatesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "printtemplates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "$ref": "v2/docs/returns/Printtemplates/get_printtemplates_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "description": "Standard Rechnung",
                                    "content_html": "<h1>Rechnung</h1>"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Printtemplates aktualisieren.",
                "description": "Schreibt die uebergebenen Felder fuer Printtemplates.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutPrinttemplatesDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name",
                                    "description",
                                    "content_html"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "content_html": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/printtemplates/search": {
            "get": {
                "tags": [
                    "printtemplates"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "v2/docs/returns/Printtemplates/get_printtemplates_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://example.org/api/v2/private/printtemplates/1",
                                            "name": "print_bill_neu",
                                            "type_name": "Rechnungsvorlage",
                                            "description": "Standard Rechnung"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Printtemplates suchen.",
                "description": "Sucht Datensaetze fuer Printtemplates anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetPrinttemplatesSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productattributedefinitions": {
            "get": {
                "tags": [
                    "productattributedefinitions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productattributedefinition.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 12,
                                            "location": "https://localhost/shop/api/v2/private/productattributedefinitions/12",
                                            "name": "Color",
                                            "show_in_filter": true,
                                            "show_on_detail": true,
                                            "private": false,
                                            "schema_org": false,
                                            "presentation_type_id": 0,
                                            "presentation_type_name": "checkbox"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmaldefinitionen abrufen.",
                "description": "Liefert eine paginierte Liste fuer Merkmaldefinitionen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductattributedefinitionsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "productattributedefinitions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 12
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributedefinitions/12"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Color"
                                                },
                                                "show_in_filter": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "show_on_detail": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "private": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "schema_org": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "presentation_type_id": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "presentation_type_name": {
                                                    "type": "string",
                                                    "example": "checkbox"
                                                },
                                                "values": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 23
                                                            },
                                                            "location": {
                                                                "type": "string",
                                                                "example": "https://localhost/shop/api/v2/private/productattributevalues/23"
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Black"
                                                            },
                                                            "sort_order": {
                                                                "type": "integer",
                                                                "example": 10
                                                            },
                                                            "image_file": {
                                                                "type": "string",
                                                                "example": ""
                                                            }
                                                        }
                                                    }
                                                },
                                                "groups": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 3
                                                            },
                                                            "location": {
                                                                "type": "string",
                                                                "example": "https://localhost/shop/api/v2/private/productattributegroups/3"
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Display attributes"
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "name": "Color",
                                    "show_in_filter": true,
                                    "show_on_detail": true,
                                    "private": false,
                                    "schema_org": false,
                                    "presentation_type_id": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmaldefinitionen anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Merkmaldefinitionen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostProductattributedefinitionsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Color"
                                    },
                                    "show_in_filter": {
                                        "type": "boolean",
                                        "example": true
                                    },
                                    "show_on_detail": {
                                        "type": "boolean",
                                        "example": true
                                    },
                                    "private": {
                                        "type": "boolean",
                                        "example": false
                                    },
                                    "schema_org": {
                                        "type": "boolean",
                                        "example": false
                                    },
                                    "presentation_type_id": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productattributedefinitions/{id}": {
            "get": {
                "tags": [
                    "productattributedefinitions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 12
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributedefinitions/12"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Color"
                                                },
                                                "show_in_filter": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "show_on_detail": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "private": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "schema_org": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "presentation_type_id": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "presentation_type_name": {
                                                    "type": "string",
                                                    "example": "checkbox"
                                                },
                                                "values": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 23
                                                            },
                                                            "location": {
                                                                "type": "string",
                                                                "example": "https://localhost/shop/api/v2/private/productattributevalues/23"
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Black"
                                                            },
                                                            "sort_order": {
                                                                "type": "integer",
                                                                "example": 10
                                                            },
                                                            "image_file": {
                                                                "type": "string",
                                                                "example": ""
                                                            }
                                                        }
                                                    }
                                                },
                                                "groups": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 3
                                                            },
                                                            "location": {
                                                                "type": "string",
                                                                "example": "https://localhost/shop/api/v2/private/productattributegroups/3"
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Display attributes"
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 12,
                                        "location": "https://localhost/shop/api/v2/private/productattributedefinitions/12",
                                        "name": "Color",
                                        "show_in_filter": true,
                                        "show_on_detail": true,
                                        "private": false,
                                        "schema_org": false,
                                        "presentation_type_id": 0,
                                        "presentation_type_name": "checkbox",
                                        "values": [
                                            {
                                                "id": 23,
                                                "name": "Black",
                                                "sort_order": 10,
                                                "image_file": ""
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmaldefinitionen Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Merkmaldefinitionen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductattributedefinitionsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "productattributedefinitions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 12
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributedefinitions/12"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Color"
                                                },
                                                "show_in_filter": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "show_on_detail": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "private": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "schema_org": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "presentation_type_id": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "presentation_type_name": {
                                                    "type": "string",
                                                    "example": "checkbox"
                                                },
                                                "values": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 23
                                                            },
                                                            "location": {
                                                                "type": "string",
                                                                "example": "https://localhost/shop/api/v2/private/productattributevalues/23"
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Black"
                                                            },
                                                            "sort_order": {
                                                                "type": "integer",
                                                                "example": 10
                                                            },
                                                            "image_file": {
                                                                "type": "string",
                                                                "example": ""
                                                            }
                                                        }
                                                    }
                                                },
                                                "groups": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "example": 3
                                                            },
                                                            "location": {
                                                                "type": "string",
                                                                "example": "https://localhost/shop/api/v2/private/productattributegroups/3"
                                                            },
                                                            "name": {
                                                                "type": "string",
                                                                "example": "Display attributes"
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "name": "Color",
                                    "show_in_filter": true,
                                    "show_on_detail": true,
                                    "private": false,
                                    "schema_org": false,
                                    "presentation_type_id": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmaldefinitionen aktualisieren.",
                "description": "Schreibt die uebergebenen Felder fuer Merkmaldefinitionen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutProductattributedefinitionsDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Color"
                                    },
                                    "show_in_filter": {
                                        "type": "boolean",
                                        "example": true
                                    },
                                    "show_on_detail": {
                                        "type": "boolean",
                                        "example": true
                                    },
                                    "private": {
                                        "type": "boolean",
                                        "example": false
                                    },
                                    "schema_org": {
                                        "type": "boolean",
                                        "example": false
                                    },
                                    "presentation_type_id": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "productattributedefinitions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmaldefinitionen loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Merkmaldefinitionen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteProductattributedefinitionsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productattributedefinitions/search": {
            "get": {
                "tags": [
                    "productattributedefinitions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productattributedefinition.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 12,
                                            "location": "https://localhost/shop/api/v2/private/productattributedefinitions/12",
                                            "name": "Color",
                                            "show_in_filter": true,
                                            "show_on_detail": true,
                                            "private": false,
                                            "schema_org": false,
                                            "presentation_type_id": 0,
                                            "presentation_type_name": "checkbox"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmaldefinitionen suchen.",
                "description": "Sucht Datensaetze fuer Merkmaldefinitionen anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductattributedefinitionsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productattributegroupassignments": {
            "get": {
                "tags": [
                    "productattributegroupassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productattributegroupassignment.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "3-12",
                                            "location": "https://localhost/shop/api/v2/private/productattributegroupassignments/3-12",
                                            "group_id": 3,
                                            "group_location": "https://localhost/shop/api/v2/private/productattributegroups/3",
                                            "attribute_definition_id": 12,
                                            "attribute_definition_location": "https://localhost/shop/api/v2/private/productattributedefinitions/12",
                                            "default_attribute_value_id": 23,
                                            "default_attribute_value_location": "https://localhost/shop/api/v2/private/productattributevalues/23"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalgruppen-Zuordnungen abrufen.",
                "description": "Liefert eine paginierte Liste fuer Merkmalgruppen-Zuordnungen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductattributegroupassignmentsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "productattributegroupassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "3-12"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributegroupassignments/3-12"
                                                },
                                                "group_id": {
                                                    "type": "integer",
                                                    "example": 3
                                                },
                                                "group_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributegroups/3"
                                                },
                                                "attribute_definition_id": {
                                                    "type": "integer",
                                                    "example": 12
                                                },
                                                "attribute_definition_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributedefinitions/12"
                                                },
                                                "default_attribute_value_id": {
                                                    "type": "integer",
                                                    "example": 23
                                                },
                                                "default_attribute_value_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributevalues/23"
                                                },
                                                "group_name": {
                                                    "type": "string",
                                                    "example": "Display attributes"
                                                },
                                                "attribute_definition_name": {
                                                    "type": "string",
                                                    "example": "Color"
                                                },
                                                "default_attribute_value_name": {
                                                    "type": "string",
                                                    "example": "Black"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "group_id": 3,
                                    "attribute_definition_id": 12,
                                    "default_attribute_value_id": 23
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalgruppen-Zuordnungen anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Merkmalgruppen-Zuordnungen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostProductattributegroupassignmentsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "group_id",
                                    "attribute_definition_id"
                                ],
                                "properties": {
                                    "group_id": {
                                        "type": "integer",
                                        "example": 3
                                    },
                                    "attribute_definition_id": {
                                        "type": "integer",
                                        "example": 12
                                    },
                                    "default_attribute_value_id": {
                                        "type": "integer",
                                        "example": 23
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productattributegroupassignments/{id}": {
            "get": {
                "tags": [
                    "productattributegroupassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "3-12"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributegroupassignments/3-12"
                                                },
                                                "group_id": {
                                                    "type": "integer",
                                                    "example": 3
                                                },
                                                "group_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributegroups/3"
                                                },
                                                "attribute_definition_id": {
                                                    "type": "integer",
                                                    "example": 12
                                                },
                                                "attribute_definition_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributedefinitions/12"
                                                },
                                                "default_attribute_value_id": {
                                                    "type": "integer",
                                                    "example": 23
                                                },
                                                "default_attribute_value_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributevalues/23"
                                                },
                                                "group_name": {
                                                    "type": "string",
                                                    "example": "Display attributes"
                                                },
                                                "attribute_definition_name": {
                                                    "type": "string",
                                                    "example": "Color"
                                                },
                                                "default_attribute_value_name": {
                                                    "type": "string",
                                                    "example": "Black"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": "3-12",
                                        "location": "https://localhost/shop/api/v2/private/productattributegroupassignments/3-12",
                                        "group_id": 3,
                                        "group_location": "https://localhost/shop/api/v2/private/productattributegroups/3",
                                        "attribute_definition_id": 12,
                                        "attribute_definition_location": "https://localhost/shop/api/v2/private/productattributedefinitions/12",
                                        "default_attribute_value_id": 23,
                                        "default_attribute_value_location": "https://localhost/shop/api/v2/private/productattributevalues/23",
                                        "group_name": "Display attributes",
                                        "attribute_definition_name": "Color",
                                        "default_attribute_value_name": "Black"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalgruppen-Zuordnungen Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Merkmalgruppen-Zuordnungen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductattributegroupassignmentsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "productattributegroupassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "3-12"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributegroupassignments/3-12"
                                                },
                                                "group_id": {
                                                    "type": "integer",
                                                    "example": 3
                                                },
                                                "group_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributegroups/3"
                                                },
                                                "attribute_definition_id": {
                                                    "type": "integer",
                                                    "example": 12
                                                },
                                                "attribute_definition_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributedefinitions/12"
                                                },
                                                "default_attribute_value_id": {
                                                    "type": "integer",
                                                    "example": 23
                                                },
                                                "default_attribute_value_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributevalues/23"
                                                },
                                                "group_name": {
                                                    "type": "string",
                                                    "example": "Display attributes"
                                                },
                                                "attribute_definition_name": {
                                                    "type": "string",
                                                    "example": "Color"
                                                },
                                                "default_attribute_value_name": {
                                                    "type": "string",
                                                    "example": "Black"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "group_id": 3,
                                    "attribute_definition_id": 12,
                                    "default_attribute_value_id": 23
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalgruppen-Zuordnungen aktualisieren.",
                "description": "Schreibt die uebergebenen Felder fuer Merkmalgruppen-Zuordnungen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutProductattributegroupassignmentsDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "group_id",
                                    "attribute_definition_id"
                                ],
                                "properties": {
                                    "group_id": {
                                        "type": "integer",
                                        "example": 3
                                    },
                                    "attribute_definition_id": {
                                        "type": "integer",
                                        "example": 12
                                    },
                                    "default_attribute_value_id": {
                                        "type": "integer",
                                        "example": 23
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "productattributegroupassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalgruppen-Zuordnungen loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Merkmalgruppen-Zuordnungen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteProductattributegroupassignmentsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productattributegroupassignments/search": {
            "get": {
                "tags": [
                    "productattributegroupassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productattributegroupassignment.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "3-12",
                                            "location": "https://localhost/shop/api/v2/private/productattributegroupassignments/3-12",
                                            "group_id": 3,
                                            "group_location": "https://localhost/shop/api/v2/private/productattributegroups/3",
                                            "attribute_definition_id": 12,
                                            "attribute_definition_location": "https://localhost/shop/api/v2/private/productattributedefinitions/12",
                                            "default_attribute_value_id": 23,
                                            "default_attribute_value_location": "https://localhost/shop/api/v2/private/productattributevalues/23"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalgruppen-Zuordnungen suchen.",
                "description": "Sucht Datensaetze fuer Merkmalgruppen-Zuordnungen anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductattributegroupassignmentsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productattributegroups": {
            "get": {
                "tags": [
                    "productattributegroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productattributegroup.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 3,
                                            "location": "https://localhost/shop/api/v2/private/productattributegroups/3",
                                            "name": "Display attributes"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalgruppen abrufen.",
                "description": "Liefert eine paginierte Liste fuer Merkmalgruppen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductattributegroupsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "productattributegroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 3
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributegroups/3"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Display attributes"
                                                },
                                                "attributes": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "attribute_definition_id": {
                                                                "type": "integer",
                                                                "example": 12
                                                            },
                                                            "attribute_definition_location": {
                                                                "type": "string",
                                                                "example": "https://localhost/shop/api/v2/private/productattributedefinitions/12"
                                                            },
                                                            "attribute_definition_name": {
                                                                "type": "string",
                                                                "example": "Color"
                                                            },
                                                            "default_attribute_value_id": {
                                                                "type": "integer",
                                                                "example": 23
                                                            },
                                                            "default_attribute_value_location": {
                                                                "type": "string",
                                                                "example": "https://localhost/shop/api/v2/private/productattributevalues/23"
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "name": "Display attributes"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalgruppen anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Merkmalgruppen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostProductattributegroupsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Display attributes"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productattributegroups/{id}": {
            "get": {
                "tags": [
                    "productattributegroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 3
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributegroups/3"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Display attributes"
                                                },
                                                "attributes": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "attribute_definition_id": {
                                                                "type": "integer",
                                                                "example": 12
                                                            },
                                                            "attribute_definition_location": {
                                                                "type": "string",
                                                                "example": "https://localhost/shop/api/v2/private/productattributedefinitions/12"
                                                            },
                                                            "attribute_definition_name": {
                                                                "type": "string",
                                                                "example": "Color"
                                                            },
                                                            "default_attribute_value_id": {
                                                                "type": "integer",
                                                                "example": 23
                                                            },
                                                            "default_attribute_value_location": {
                                                                "type": "string",
                                                                "example": "https://localhost/shop/api/v2/private/productattributevalues/23"
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 3,
                                        "location": "https://localhost/shop/api/v2/private/productattributegroups/3",
                                        "name": "Display attributes",
                                        "attributes": [
                                            {
                                                "attribute_definition_id": 12,
                                                "attribute_definition_location": "https://localhost/shop/api/v2/private/productattributedefinitions/12",
                                                "attribute_definition_name": "Color",
                                                "default_attribute_value_id": 23,
                                                "default_attribute_value_location": "https://localhost/shop/api/v2/private/productattributevalues/23"
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalgruppen Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Merkmalgruppen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductattributegroupsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "productattributegroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 3
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributegroups/3"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Display attributes"
                                                },
                                                "attributes": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "attribute_definition_id": {
                                                                "type": "integer",
                                                                "example": 12
                                                            },
                                                            "attribute_definition_location": {
                                                                "type": "string",
                                                                "example": "https://localhost/shop/api/v2/private/productattributedefinitions/12"
                                                            },
                                                            "attribute_definition_name": {
                                                                "type": "string",
                                                                "example": "Color"
                                                            },
                                                            "default_attribute_value_id": {
                                                                "type": "integer",
                                                                "example": 23
                                                            },
                                                            "default_attribute_value_location": {
                                                                "type": "string",
                                                                "example": "https://localhost/shop/api/v2/private/productattributevalues/23"
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "name": "Display attributes"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalgruppen aktualisieren.",
                "description": "Schreibt die uebergebenen Felder fuer Merkmalgruppen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutProductattributegroupsDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Display attributes"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "productattributegroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalgruppen loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Merkmalgruppen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteProductattributegroupsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productattributegroups/search": {
            "get": {
                "tags": [
                    "productattributegroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productattributegroup.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 3,
                                            "location": "https://localhost/shop/api/v2/private/productattributegroups/3",
                                            "name": "Display attributes"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalgruppen suchen.",
                "description": "Sucht Datensaetze fuer Merkmalgruppen anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductattributegroupsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productattributes": {
            "get": {
                "tags": [
                    "productattributes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productattribute.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "41-0-23",
                                            "location": "https://localhost/shop/api/v2/private/productattributes/41-0-23",
                                            "product_id": 41,
                                            "product_location": "https://localhost/shop/api/v2/private/products/41",
                                            "variation_id": 0,
                                            "assignment_scope": "product",
                                            "attribute_id": 12,
                                            "attribute_name": "Color",
                                            "attribute_value_id": 23,
                                            "attribute_value_name": "Black"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productattributes abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productattributes.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductattributesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "productattributes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "41-0-23"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributes/41-0-23"
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 41
                                                },
                                                "product_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/products/41"
                                                },
                                                "variation_id": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "assignment_scope": {
                                                    "type": "string",
                                                    "example": "product"
                                                },
                                                "attribute_id": {
                                                    "type": "integer",
                                                    "example": 12
                                                },
                                                "attribute_name": {
                                                    "type": "string",
                                                    "example": "Color"
                                                },
                                                "attribute_value_id": {
                                                    "type": "integer",
                                                    "example": 23
                                                },
                                                "attribute_value_name": {
                                                    "type": "string",
                                                    "example": "Black"
                                                },
                                                "product_name": {
                                                    "type": "string",
                                                    "example": "Neff Broh Sonnenbrille black"
                                                },
                                                "product_sku": {
                                                    "type": "string",
                                                    "example": "41"
                                                },
                                                "variation_sku": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "variation_name": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "show_in_filter": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "show_on_detail": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "private": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "schema_org": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "presentation_type_id": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "attribute_value_sort_order": {
                                                    "type": "integer",
                                                    "example": 10
                                                },
                                                "attribute_value_image_file": {
                                                    "type": "string",
                                                    "example": ""
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "product_id": 41,
                                    "variation_id": 0,
                                    "attribute_value_id": 23
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productattributes anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Productattributes.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostProductattributesPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "product_id",
                                    "attribute_value_id"
                                ],
                                "properties": {
                                    "product_id": {
                                        "type": "integer",
                                        "example": 41
                                    },
                                    "variation_id": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "attribute_value_id": {
                                        "type": "integer",
                                        "example": 23
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productattributes/{id}": {
            "get": {
                "tags": [
                    "productattributes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "41-0-23"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributes/41-0-23"
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 41
                                                },
                                                "product_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/products/41"
                                                },
                                                "variation_id": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "assignment_scope": {
                                                    "type": "string",
                                                    "example": "product"
                                                },
                                                "attribute_id": {
                                                    "type": "integer",
                                                    "example": 12
                                                },
                                                "attribute_name": {
                                                    "type": "string",
                                                    "example": "Color"
                                                },
                                                "attribute_value_id": {
                                                    "type": "integer",
                                                    "example": 23
                                                },
                                                "attribute_value_name": {
                                                    "type": "string",
                                                    "example": "Black"
                                                },
                                                "product_name": {
                                                    "type": "string",
                                                    "example": "Neff Broh Sonnenbrille black"
                                                },
                                                "product_sku": {
                                                    "type": "string",
                                                    "example": "41"
                                                },
                                                "variation_sku": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "variation_name": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "show_in_filter": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "show_on_detail": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "private": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "schema_org": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "presentation_type_id": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "attribute_value_sort_order": {
                                                    "type": "integer",
                                                    "example": 10
                                                },
                                                "attribute_value_image_file": {
                                                    "type": "string",
                                                    "example": ""
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": "41-0-23",
                                        "location": "https://localhost/shop/api/v2/private/productattributes/41-0-23",
                                        "product_id": 41,
                                        "product_location": "https://localhost/shop/api/v2/private/products/41",
                                        "variation_id": 0,
                                        "assignment_scope": "product",
                                        "attribute_id": 12,
                                        "attribute_name": "Color",
                                        "attribute_value_id": 23,
                                        "attribute_value_name": "Black",
                                        "product_name": "Neff Broh Sonnenbrille black",
                                        "product_sku": "41",
                                        "variation_sku": "",
                                        "variation_name": "",
                                        "show_in_filter": true,
                                        "show_on_detail": true,
                                        "private": false,
                                        "schema_org": false,
                                        "presentation_type_id": 0,
                                        "attribute_value_sort_order": 10,
                                        "attribute_value_image_file": ""
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productattributes Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productattributes.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductattributesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "productattributes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productattributes loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Productattributes.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteProductattributesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productattributes/search": {
            "get": {
                "tags": [
                    "productattributes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productattribute.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "41-0-23",
                                            "location": "https://localhost/shop/api/v2/private/productattributes/41-0-23",
                                            "product_id": 41,
                                            "product_location": "https://localhost/shop/api/v2/private/products/41",
                                            "variation_id": 0,
                                            "assignment_scope": "product",
                                            "attribute_id": 12,
                                            "attribute_name": "Color",
                                            "attribute_value_id": 23,
                                            "attribute_value_name": "Black"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productattributes suchen.",
                "description": "Sucht Datensaetze fuer Productattributes anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductattributesSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productattributevalues": {
            "get": {
                "tags": [
                    "productattributevalues"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productattributevalue.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 23,
                                            "location": "https://localhost/shop/api/v2/private/productattributevalues/23",
                                            "attribute_definition_id": 12,
                                            "attribute_definition_location": "https://localhost/shop/api/v2/private/productattributedefinitions/12",
                                            "name": "Black",
                                            "sort_order": 10,
                                            "image_file": ""
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalwerte abrufen.",
                "description": "Liefert eine paginierte Liste fuer Merkmalwerte.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductattributevaluesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "productattributevalues"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 23
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributevalues/23"
                                                },
                                                "attribute_definition_id": {
                                                    "type": "integer",
                                                    "example": 12
                                                },
                                                "attribute_definition_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributedefinitions/12"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Black"
                                                },
                                                "sort_order": {
                                                    "type": "integer",
                                                    "example": 10
                                                },
                                                "image_file": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "attribute_definition_name": {
                                                    "type": "string",
                                                    "example": "Color"
                                                },
                                                "attribute_definition_private": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "attribute_definition_show_on_detail": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "attribute_definition_show_in_filter": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "attribute_definition_schema_org": {
                                                    "type": "boolean",
                                                    "example": false
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "attribute_definition_id": 12,
                                    "name": "Black",
                                    "sort_order": 10,
                                    "image_file": ""
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalwerte anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Merkmalwerte.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostProductattributevaluesPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "attribute_definition_id",
                                    "name"
                                ],
                                "properties": {
                                    "attribute_definition_id": {
                                        "type": "integer",
                                        "example": 12
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Black"
                                    },
                                    "sort_order": {
                                        "type": "integer",
                                        "example": 10
                                    },
                                    "image_file": {
                                        "type": "string",
                                        "example": ""
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productattributevalues/{id}": {
            "get": {
                "tags": [
                    "productattributevalues"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 23
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributevalues/23"
                                                },
                                                "attribute_definition_id": {
                                                    "type": "integer",
                                                    "example": 12
                                                },
                                                "attribute_definition_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributedefinitions/12"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Black"
                                                },
                                                "sort_order": {
                                                    "type": "integer",
                                                    "example": 10
                                                },
                                                "image_file": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "attribute_definition_name": {
                                                    "type": "string",
                                                    "example": "Color"
                                                },
                                                "attribute_definition_private": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "attribute_definition_show_on_detail": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "attribute_definition_show_in_filter": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "attribute_definition_schema_org": {
                                                    "type": "boolean",
                                                    "example": false
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 23,
                                        "location": "https://localhost/shop/api/v2/private/productattributevalues/23",
                                        "attribute_definition_id": 12,
                                        "attribute_definition_location": "https://localhost/shop/api/v2/private/productattributedefinitions/12",
                                        "name": "Black",
                                        "sort_order": 10,
                                        "image_file": "",
                                        "attribute_definition_name": "Color",
                                        "attribute_definition_private": false,
                                        "attribute_definition_show_on_detail": true,
                                        "attribute_definition_show_in_filter": true,
                                        "attribute_definition_schema_org": false
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalwerte Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Merkmalwerte.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductattributevaluesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "productattributevalues"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 23
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributevalues/23"
                                                },
                                                "attribute_definition_id": {
                                                    "type": "integer",
                                                    "example": 12
                                                },
                                                "attribute_definition_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productattributedefinitions/12"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Black"
                                                },
                                                "sort_order": {
                                                    "type": "integer",
                                                    "example": 10
                                                },
                                                "image_file": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "attribute_definition_name": {
                                                    "type": "string",
                                                    "example": "Color"
                                                },
                                                "attribute_definition_private": {
                                                    "type": "boolean",
                                                    "example": false
                                                },
                                                "attribute_definition_show_on_detail": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "attribute_definition_show_in_filter": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "attribute_definition_schema_org": {
                                                    "type": "boolean",
                                                    "example": false
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "attribute_definition_id": 12,
                                    "name": "Black",
                                    "sort_order": 10,
                                    "image_file": ""
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalwerte aktualisieren.",
                "description": "Schreibt die uebergebenen Felder fuer Merkmalwerte.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutProductattributevaluesDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "attribute_definition_id",
                                    "name"
                                ],
                                "properties": {
                                    "attribute_definition_id": {
                                        "type": "integer",
                                        "example": 12
                                    },
                                    "name": {
                                        "type": "string",
                                        "example": "Black"
                                    },
                                    "sort_order": {
                                        "type": "integer",
                                        "example": 10
                                    },
                                    "image_file": {
                                        "type": "string",
                                        "example": ""
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "productattributevalues"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalwerte loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Merkmalwerte.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteProductattributevaluesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productattributevalues/search": {
            "get": {
                "tags": [
                    "productattributevalues"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productattributevalue.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 23,
                                            "location": "https://localhost/shop/api/v2/private/productattributevalues/23",
                                            "attribute_definition_id": 12,
                                            "attribute_definition_location": "https://localhost/shop/api/v2/private/productattributedefinitions/12",
                                            "name": "Black",
                                            "sort_order": 10,
                                            "image_file": ""
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Merkmalwerte suchen.",
                "description": "Sucht Datensaetze fuer Merkmalwerte anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductattributevaluesSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productbulletpoints": {
            "get": {
                "tags": [
                    "productbulletpoints"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 23
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/productbulletpoints/23"
                                                    },
                                                    "product_id": {
                                                        "type": "integer",
                                                        "example": 41
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Bruchfeste Glaser"
                                                    },
                                                    "sort_order": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "product_location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/products/41"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 23,
                                            "location": "https://localhost/shop/api/v2/private/productbulletpoints/23",
                                            "product_id": 41,
                                            "name": "Bruchfeste Glaser",
                                            "sort_order": 1,
                                            "product_location": "https://localhost/shop/api/v2/private/products/41"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productbulletpoints abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productbulletpoints.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductbulletpointsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "productbulletpoints"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 23
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productbulletpoints/23"
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 41
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Bruchfeste Glaser"
                                                },
                                                "sort_order": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "product_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/products/41"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 23,
                                        "location": "https://localhost/shop/api/v2/private/productbulletpoints/23",
                                        "product_id": 41,
                                        "name": "Bruchfeste Glaser",
                                        "sort_order": 1,
                                        "product_location": "https://localhost/shop/api/v2/private/products/41"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productbulletpoint erstellen.",
                "description": "Erstellt einen neuen Bulletpoint fuer ein Produkt in der aktuellen Sprache.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostProductbulletpointsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "product_id",
                                    "name"
                                ],
                                "properties": {
                                    "product_id": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "description": "ID des Produkts"
                                    },
                                    "name": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255,
                                        "description": "Text des Bulletpoints in der aktuellen Sprache"
                                    },
                                    "sort_order": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "default": 0,
                                        "description": "Sortierreihenfolge"
                                    }
                                }
                            },
                            "example": {
                                "product_id": 41,
                                "name": "Wasserfest",
                                "sort_order": 10
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productbulletpoints/{id}": {
            "get": {
                "tags": [
                    "productbulletpoints"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 23
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productbulletpoints/23"
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 41
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Bruchfeste Glaser"
                                                },
                                                "sort_order": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "product_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/products/41"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 23,
                                        "location": "https://localhost/shop/api/v2/private/productbulletpoints/23",
                                        "product_id": 41,
                                        "name": "Bruchfeste Glaser",
                                        "sort_order": 1,
                                        "product_location": "https://localhost/shop/api/v2/private/products/41"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productbulletpoints Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productbulletpoints.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductbulletpointsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "productbulletpoints"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 23
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productbulletpoints/23"
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 41
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Bruchfeste Glaser"
                                                },
                                                "sort_order": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "product_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/products/41"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 23,
                                        "location": "https://localhost/shop/api/v2/private/productbulletpoints/23",
                                        "product_id": 41,
                                        "name": "Bruchfeste Glaser",
                                        "sort_order": 1,
                                        "product_location": "https://localhost/shop/api/v2/private/products/41"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productbulletpoint aktualisieren.",
                "description": "Aktualisiert die uebergebenen Felder eines Bulletpoints.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutProductbulletpointsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Bulletpoint-ID."
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "product_id": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "description": "ID des Produkts"
                                    },
                                    "name": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255,
                                        "description": "Text des Bulletpoints in der aktuellen Sprache"
                                    },
                                    "sort_order": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "description": "Sortierreihenfolge"
                                    }
                                }
                            },
                            "example": {
                                "name": "Besonders wasserfest",
                                "sort_order": 20
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "productbulletpoints"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productbulletpoint loeschen.",
                "description": "Loescht den Bulletpoint inklusive seiner Sprachdaten.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteProductbulletpointsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Bulletpoint-ID."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productbulletpoints/search": {
            "get": {
                "tags": [
                    "productbulletpoints"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 23
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/productbulletpoints/23"
                                                    },
                                                    "product_id": {
                                                        "type": "integer",
                                                        "example": 41
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Bruchfeste Glaser"
                                                    },
                                                    "sort_order": {
                                                        "type": "integer",
                                                        "example": 1
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 23,
                                            "location": "https://localhost/shop/api/v2/private/productbulletpoints/23",
                                            "product_id": 41,
                                            "name": "Bruchfeste Glaser",
                                            "sort_order": 1
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productbulletpoints suchen.",
                "description": "Sucht Datensaetze fuer Productbulletpoints anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductbulletpointsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productbundles": {
            "get": {
                "tags": [
                    "productbundles"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "location": {
                                                        "type": "string"
                                                    },
                                                    "product_id": {
                                                        "type": "integer"
                                                    },
                                                    "bundled_product_id": {
                                                        "type": "integer"
                                                    },
                                                    "variation_id": {
                                                        "type": "integer"
                                                    },
                                                    "quantity": {
                                                        "type": "number"
                                                    },
                                                    "dynamic_variation": {
                                                        "type": "boolean"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/productbundles/1",
                                            "product_id": 25,
                                            "bundled_product_id": 41,
                                            "variation_id": 0,
                                            "quantity": 1,
                                            "dynamic_variation": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 10,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productbundles abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productbundles.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductbundlesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productbundles/{id}": {
            "get": {
                "tags": [
                    "productbundles"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "location": {
                                                    "type": "string"
                                                },
                                                "product_id": {
                                                    "type": "integer"
                                                },
                                                "product_location": {
                                                    "type": "string"
                                                },
                                                "bundled_product_id": {
                                                    "type": "integer"
                                                },
                                                "bundled_product_location": {
                                                    "type": "string"
                                                },
                                                "bundled_product_name": {
                                                    "type": "string"
                                                },
                                                "variation_id": {
                                                    "type": "integer"
                                                },
                                                "variation_location": {
                                                    "type": "string"
                                                },
                                                "variation_sku": {
                                                    "type": "string"
                                                },
                                                "variation_name": {
                                                    "type": "string"
                                                },
                                                "quantity": {
                                                    "type": "number"
                                                },
                                                "dynamic_variation": {
                                                    "type": "boolean"
                                                },
                                                "selectable_variation_ids": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "integer"
                                                    }
                                                },
                                                "selectable_variations": {
                                                    "type": "array"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/productbundles/1",
                                        "product_id": 25,
                                        "product_location": "https://localhost/shop/api/v2/private/products/25",
                                        "bundled_product_id": 41,
                                        "bundled_product_location": "https://localhost/shop/api/v2/private/products/41",
                                        "bundled_product_name": "Bundle item",
                                        "variation_id": 0,
                                        "variation_location": "",
                                        "variation_sku": "",
                                        "variation_name": "",
                                        "quantity": 1,
                                        "dynamic_variation": true,
                                        "selectable_variation_ids": [
                                            1,
                                            2
                                        ],
                                        "selectable_variations": [
                                            {
                                                "variation_id": 1,
                                                "variation_location": "https://localhost/shop/api/v2/private/products/variations/1",
                                                "sku": "41-1",
                                                "variation_name": "Variant 1",
                                                "quantity": 1
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productbundles Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productbundles.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductbundlesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productbundles/search": {
            "get": {
                "tags": [
                    "productbundles"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productbundles.json#/properties/data/items"
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/productbundles/1",
                                            "product_id": 25,
                                            "bundled_product_id": 41,
                                            "variation_id": 0,
                                            "quantity": 1,
                                            "dynamic_variation": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productbundles suchen.",
                "description": "Sucht Datensaetze fuer Productbundles anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductbundlesSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productcategoryassignments": {
            "get": {
                "tags": [
                    "productcategoryassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productcategoryassignment.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "41-2-0",
                                            "location": "https://localhost/shop/api/v2/private/productcategoryassignments/41-2-0",
                                            "product_id": 41,
                                            "product_location": "https://localhost/shop/api/v2/private/products/41",
                                            "category_id": 2,
                                            "category_location": "https://localhost/shop/api/v2/private/categories/2",
                                            "variation_id": 0,
                                            "assignment_scope": "product",
                                            "sort_order": 10,
                                            "is_main_category": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productcategoryassignments abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productcategoryassignments.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductcategoryassignmentsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "productcategoryassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "41-2-0"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productcategoryassignments/41-2-0"
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 41
                                                },
                                                "product_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/products/41"
                                                },
                                                "category_id": {
                                                    "type": "integer",
                                                    "example": 2
                                                },
                                                "category_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/categories/2"
                                                },
                                                "variation_id": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "assignment_scope": {
                                                    "type": "string",
                                                    "example": "product"
                                                },
                                                "sort_order": {
                                                    "type": "integer",
                                                    "example": 10
                                                },
                                                "is_main_category": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "product_name": {
                                                    "type": "string",
                                                    "example": "Neff Broh Sonnenbrille black"
                                                },
                                                "category_name": {
                                                    "type": "string",
                                                    "example": "Ski"
                                                },
                                                "category_active": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "variation_sku": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "variation_name": {
                                                    "type": "string",
                                                    "example": ""
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "product_id": 41,
                                    "category_id": 2,
                                    "variation_id": 0,
                                    "is_main_category": false
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productcategoryassignments anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Productcategoryassignments.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostProductcategoryassignmentsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "product_id",
                                    "category_id"
                                ],
                                "properties": {
                                    "product_id": {
                                        "type": "integer",
                                        "example": 41
                                    },
                                    "category_id": {
                                        "type": "integer",
                                        "example": 2
                                    },
                                    "variation_id": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "sort_order": {
                                        "type": "integer",
                                        "example": 10
                                    },
                                    "is_main_category": {
                                        "type": "boolean",
                                        "example": false
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productcategoryassignments/{id}": {
            "get": {
                "tags": [
                    "productcategoryassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "41-2-0"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productcategoryassignments/41-2-0"
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 41
                                                },
                                                "product_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/products/41"
                                                },
                                                "category_id": {
                                                    "type": "integer",
                                                    "example": 2
                                                },
                                                "category_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/categories/2"
                                                },
                                                "variation_id": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "assignment_scope": {
                                                    "type": "string",
                                                    "example": "product"
                                                },
                                                "sort_order": {
                                                    "type": "integer",
                                                    "example": 10
                                                },
                                                "is_main_category": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "product_name": {
                                                    "type": "string",
                                                    "example": "Neff Broh Sonnenbrille black"
                                                },
                                                "category_name": {
                                                    "type": "string",
                                                    "example": "Ski"
                                                },
                                                "category_active": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "variation_sku": {
                                                    "type": "string",
                                                    "example": ""
                                                },
                                                "variation_name": {
                                                    "type": "string",
                                                    "example": ""
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": "41-2-0",
                                        "location": "https://localhost/shop/api/v2/private/productcategoryassignments/41-2-0",
                                        "product_id": 41,
                                        "product_location": "https://localhost/shop/api/v2/private/products/41",
                                        "category_id": 2,
                                        "category_location": "https://localhost/shop/api/v2/private/categories/2",
                                        "variation_id": 0,
                                        "assignment_scope": "product",
                                        "sort_order": 10,
                                        "is_main_category": true,
                                        "product_name": "Neff Broh Sonnenbrille black",
                                        "category_name": "Ski",
                                        "category_active": true,
                                        "variation_sku": "",
                                        "variation_name": ""
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productcategoryassignments Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productcategoryassignments.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductcategoryassignmentsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "productcategoryassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productcategoryassignments loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Productcategoryassignments.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteProductcategoryassignmentsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productcategoryassignments/search": {
            "get": {
                "tags": [
                    "productcategoryassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productcategoryassignment.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "41-2-0",
                                            "location": "https://localhost/shop/api/v2/private/productcategoryassignments/41-2-0",
                                            "product_id": 41,
                                            "product_location": "https://localhost/shop/api/v2/private/products/41",
                                            "category_id": 2,
                                            "category_location": "https://localhost/shop/api/v2/private/categories/2",
                                            "variation_id": 0,
                                            "assignment_scope": "product",
                                            "sort_order": 10,
                                            "is_main_category": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productcategoryassignments suchen.",
                "description": "Sucht Datensaetze fuer Productcategoryassignments anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductcategoryassignmentsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productcountryexclusions": {
            "get": {
                "tags": [
                    "productcountryexclusions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productcountryexclusion.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "41-81",
                                            "location": "https://localhost/shop/api/v2/private/productcountryexclusions/41-81",
                                            "product_id": 41,
                                            "product_location": "https://localhost/shop/api/v2/private/products/41",
                                            "country_id": 81,
                                            "country_location": "https://localhost/shop/api/v2/private/countries/81"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productcountryexclusions abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productcountryexclusions.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductcountryexclusionsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "productcountryexclusions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "41-81"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productcountryexclusions/41-81"
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 41
                                                },
                                                "product_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/products/41"
                                                },
                                                "country_id": {
                                                    "type": "integer",
                                                    "example": 81
                                                },
                                                "country_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/countries/81"
                                                },
                                                "product_name": {
                                                    "type": "string",
                                                    "example": "Neff Broh Sonnenbrille black"
                                                },
                                                "product_sku": {
                                                    "type": "string",
                                                    "example": "41"
                                                },
                                                "country_name": {
                                                    "type": "string",
                                                    "example": "Germany"
                                                },
                                                "country_iso2": {
                                                    "type": "string",
                                                    "example": "DE"
                                                },
                                                "country_iso3": {
                                                    "type": "string",
                                                    "example": "DEU"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "product_id": 41,
                                    "country_id": 81
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productcountryexclusions anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Productcountryexclusions.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostProductcountryexclusionsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "product_id",
                                    "country_id"
                                ],
                                "properties": {
                                    "product_id": {
                                        "type": "integer",
                                        "example": 41
                                    },
                                    "country_id": {
                                        "type": "integer",
                                        "example": 81
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productcountryexclusions/{id}": {
            "get": {
                "tags": [
                    "productcountryexclusions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "41-81"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productcountryexclusions/41-81"
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 41
                                                },
                                                "product_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/products/41"
                                                },
                                                "country_id": {
                                                    "type": "integer",
                                                    "example": 81
                                                },
                                                "country_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/countries/81"
                                                },
                                                "product_name": {
                                                    "type": "string",
                                                    "example": "Neff Broh Sonnenbrille black"
                                                },
                                                "product_sku": {
                                                    "type": "string",
                                                    "example": "41"
                                                },
                                                "country_name": {
                                                    "type": "string",
                                                    "example": "Germany"
                                                },
                                                "country_iso2": {
                                                    "type": "string",
                                                    "example": "DE"
                                                },
                                                "country_iso3": {
                                                    "type": "string",
                                                    "example": "DEU"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": "41-81",
                                        "location": "https://localhost/shop/api/v2/private/productcountryexclusions/41-81",
                                        "product_id": 41,
                                        "product_location": "https://localhost/shop/api/v2/private/products/41",
                                        "country_id": 81,
                                        "country_location": "https://localhost/shop/api/v2/private/countries/81",
                                        "product_name": "Neff Broh Sonnenbrille black",
                                        "product_sku": "41",
                                        "country_name": "Germany",
                                        "country_iso2": "DE",
                                        "country_iso3": "DEU"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productcountryexclusions Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productcountryexclusions.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductcountryexclusionsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "productcountryexclusions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productcountryexclusions loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Productcountryexclusions.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteProductcountryexclusionsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productcountryexclusions/search": {
            "get": {
                "tags": [
                    "productcountryexclusions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productcountryexclusion.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "41-81",
                                            "location": "https://localhost/shop/api/v2/private/productcountryexclusions/41-81",
                                            "product_id": 41,
                                            "product_location": "https://localhost/shop/api/v2/private/products/41",
                                            "country_id": 81,
                                            "country_location": "https://localhost/shop/api/v2/private/countries/81"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productcountryexclusions suchen.",
                "description": "Sucht Datensaetze fuer Productcountryexclusions anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductcountryexclusionsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productdownloads": {
            "get": {
                "tags": [
                    "productdownloads"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "location": {
                                                        "type": "string"
                                                    },
                                                    "product_id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "type_id": {
                                                        "type": "integer"
                                                    },
                                                    "type_name": {
                                                        "type": "string"
                                                    },
                                                    "url": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/productdownloads/1",
                                            "product_id": 41,
                                            "name": "Manual",
                                            "type_id": 6,
                                            "type_name": "Benutzerhandbuch / Anleitung",
                                            "url": "https://localhost/shop/downloads/files/manual.pdf"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 10,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productdownloads abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productdownloads.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductdownloadsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productdownloads/{id}": {
            "get": {
                "tags": [
                    "productdownloads"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "location": {
                                                    "type": "string"
                                                },
                                                "product_id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "type_id": {
                                                    "type": "integer"
                                                },
                                                "type_name": {
                                                    "type": "string"
                                                },
                                                "file": {
                                                    "type": "string"
                                                },
                                                "external_url": {
                                                    "type": "string"
                                                },
                                                "url": {
                                                    "type": "string"
                                                },
                                                "icon": {
                                                    "type": "object",
                                                    "properties": {
                                                        "file": {
                                                            "type": "string"
                                                        },
                                                        "path": {
                                                            "type": "string"
                                                        },
                                                        "url": {
                                                            "type": "string"
                                                        }
                                                    }
                                                },
                                                "product_location": {
                                                    "type": "string"
                                                },
                                                "type": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "ebay_type": {
                                                            "type": "string"
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/productdownloads/1",
                                        "product_id": 41,
                                        "name": "Manual",
                                        "type_id": 6,
                                        "type_name": "Benutzerhandbuch / Anleitung",
                                        "file": "manual.pdf",
                                        "external_url": "",
                                        "url": "https://localhost/shop/downloads/files/manual.pdf",
                                        "icon": {
                                            "file": "pdf.png",
                                            "path": "downloads/images/pdf.png",
                                            "url": "https://localhost/shop/downloads/images/pdf.png"
                                        },
                                        "product_location": "https://localhost/shop/api/v2/private/products/41",
                                        "type": {
                                            "id": 6,
                                            "name": "Benutzerhandbuch / Anleitung",
                                            "ebay_type": "USER_GUIDE_OR_MANUAL"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productdownloads Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productdownloads.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductdownloadsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productdownloads/search": {
            "get": {
                "tags": [
                    "productdownloads"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productdownloads.json#/properties/data/items"
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/productdownloads/1",
                                            "product_id": 41,
                                            "name": "Manual",
                                            "type_id": 6,
                                            "type_name": "Benutzerhandbuch / Anleitung",
                                            "url": "https://localhost/shop/downloads/files/manual.pdf"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productdownloads suchen.",
                "description": "Sucht Datensaetze fuer Productdownloads anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductdownloadsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productfaqs": {
            "get": {
                "tags": [
                    "productfaqs"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 7
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/productfaqs/7"
                                                    },
                                                    "product_id": {
                                                        "type": "integer",
                                                        "example": 41
                                                    },
                                                    "question": {
                                                        "type": "string",
                                                        "example": "Ist die Brille polarisiert?"
                                                    },
                                                    "answer": {
                                                        "type": "string",
                                                        "example": "Ja, die Glaser sind polarisiert."
                                                    },
                                                    "sort_order": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "product_location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/products/41"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 7,
                                            "location": "https://localhost/shop/api/v2/private/productfaqs/7",
                                            "product_id": 41,
                                            "question": "Ist die Brille polarisiert?",
                                            "answer": "Ja, die Glaser sind polarisiert.",
                                            "sort_order": 1,
                                            "product_location": "https://localhost/shop/api/v2/private/products/41"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productfaqs abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productfaqs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductfaqsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "productfaqs"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 7
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productfaqs/7"
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 41
                                                },
                                                "question": {
                                                    "type": "string",
                                                    "example": "Ist die Brille polarisiert?"
                                                },
                                                "answer": {
                                                    "type": "string",
                                                    "example": "Ja, die Glaser sind polarisiert."
                                                },
                                                "sort_order": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "product_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/products/41"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 7,
                                        "location": "https://localhost/shop/api/v2/private/productfaqs/7",
                                        "product_id": 41,
                                        "question": "Ist die Brille polarisiert?",
                                        "answer": "Ja, die Glaser sind polarisiert.",
                                        "sort_order": 1,
                                        "product_location": "https://localhost/shop/api/v2/private/products/41"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Product-FAQ erstellen.",
                "description": "Erstellt eine neue FAQ fuer ein Produkt in der aktuellen Sprache.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostProductfaqsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "product_id",
                                    "question"
                                ],
                                "properties": {
                                    "product_id": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "description": "ID des Produkts"
                                    },
                                    "question": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255,
                                        "description": "Frage in der aktuellen Sprache"
                                    },
                                    "answer": {
                                        "type": "string",
                                        "description": "Antwort in der aktuellen Sprache"
                                    },
                                    "sort_order": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "default": 0,
                                        "description": "Sortierreihenfolge"
                                    }
                                }
                            },
                            "example": {
                                "product_id": 41,
                                "question": "Ist die Brille polarisiert?",
                                "answer": "Ja, die Glaeser sind polarisiert.",
                                "sort_order": 1
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productfaqs/{id}": {
            "get": {
                "tags": [
                    "productfaqs"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 7
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productfaqs/7"
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 41
                                                },
                                                "question": {
                                                    "type": "string",
                                                    "example": "Ist die Brille polarisiert?"
                                                },
                                                "answer": {
                                                    "type": "string",
                                                    "example": "Ja, die Glaser sind polarisiert."
                                                },
                                                "sort_order": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "product_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/products/41"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 7,
                                        "location": "https://localhost/shop/api/v2/private/productfaqs/7",
                                        "product_id": 41,
                                        "question": "Ist die Brille polarisiert?",
                                        "answer": "Ja, die Glaser sind polarisiert.",
                                        "sort_order": 1,
                                        "product_location": "https://localhost/shop/api/v2/private/products/41"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productfaqs Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productfaqs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductfaqsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "productfaqs"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 7
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productfaqs/7"
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 41
                                                },
                                                "question": {
                                                    "type": "string",
                                                    "example": "Ist die Brille polarisiert?"
                                                },
                                                "answer": {
                                                    "type": "string",
                                                    "example": "Ja, die Glaser sind polarisiert."
                                                },
                                                "sort_order": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "product_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/products/41"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 7,
                                        "location": "https://localhost/shop/api/v2/private/productfaqs/7",
                                        "product_id": 41,
                                        "question": "Ist die Brille polarisiert?",
                                        "answer": "Ja, die Glaser sind polarisiert.",
                                        "sort_order": 1,
                                        "product_location": "https://localhost/shop/api/v2/private/products/41"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Product-FAQ aktualisieren.",
                "description": "Aktualisiert die uebergebenen Felder einer FAQ.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutProductfaqsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "FAQ-ID."
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "product_id": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "description": "ID des Produkts"
                                    },
                                    "question": {
                                        "type": "string",
                                        "minLength": 1,
                                        "maxLength": 255,
                                        "description": "Frage in der aktuellen Sprache"
                                    },
                                    "answer": {
                                        "type": "string",
                                        "description": "Antwort in der aktuellen Sprache"
                                    },
                                    "sort_order": {
                                        "type": "integer",
                                        "minimum": 0,
                                        "description": "Sortierreihenfolge"
                                    }
                                }
                            },
                            "example": {
                                "question": "Sind die Glaeser polarisiert?",
                                "answer": "Ja, die Glaeser sind vollstaendig polarisiert.",
                                "sort_order": 2
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "productfaqs"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Product-FAQ loeschen.",
                "description": "Loescht die FAQ inklusive ihrer Sprachdaten.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteProductfaqsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "FAQ-ID."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productfaqs/search": {
            "get": {
                "tags": [
                    "productfaqs"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 7
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/productfaqs/7"
                                                    },
                                                    "product_id": {
                                                        "type": "integer",
                                                        "example": 41
                                                    },
                                                    "question": {
                                                        "type": "string",
                                                        "example": "Ist die Brille polarisiert?"
                                                    },
                                                    "sort_order": {
                                                        "type": "integer",
                                                        "example": 1
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 7,
                                            "location": "https://localhost/shop/api/v2/private/productfaqs/7",
                                            "product_id": 41,
                                            "question": "Ist die Brille polarisiert?",
                                            "sort_order": 1
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productfaqs suchen.",
                "description": "Sucht Datensaetze fuer Productfaqs anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductfaqsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productfreetexts": {
            "get": {
                "tags": [
                    "productfreetexts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "string",
                                                        "example": "41-1-1"
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/productfreetexts/41-1-1"
                                                    },
                                                    "product_id": {
                                                        "type": "integer",
                                                        "example": 41
                                                    },
                                                    "lang_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "counter": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "variable_suffix": {
                                                        "type": "string",
                                                        "example": "PFLEGE"
                                                    },
                                                    "template_name": {
                                                        "type": "string",
                                                        "example": "FREITEXTFELD1PFLEGE"
                                                    },
                                                    "content": {
                                                        "type": "string",
                                                        "example": "Pflegehinweise fuer dieses Produkt."
                                                    },
                                                    "product_location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/products/41"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "41-1-1",
                                            "location": "https://localhost/shop/api/v2/private/productfreetexts/41-1-1",
                                            "product_id": 41,
                                            "lang_id": 1,
                                            "counter": 1,
                                            "variable_suffix": "PFLEGE",
                                            "template_name": "FREITEXTFELD1PFLEGE",
                                            "content": "Pflegehinweise fuer dieses Produkt.",
                                            "product_location": "https://localhost/shop/api/v2/private/products/41"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productfreetexts abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productfreetexts.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductfreetextsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productfreetexts/{id}": {
            "get": {
                "tags": [
                    "productfreetexts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "41-1-1"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productfreetexts/41-1-1"
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 41
                                                },
                                                "lang_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "counter": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "variable_suffix": {
                                                    "type": "string",
                                                    "example": "PFLEGE"
                                                },
                                                "template_name": {
                                                    "type": "string",
                                                    "example": "FREITEXTFELD1PFLEGE"
                                                },
                                                "content": {
                                                    "type": "string",
                                                    "example": "Pflegehinweise fuer dieses Produkt."
                                                },
                                                "product_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/products/41"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": "41-1-1",
                                        "location": "https://localhost/shop/api/v2/private/productfreetexts/41-1-1",
                                        "product_id": 41,
                                        "lang_id": 1,
                                        "counter": 1,
                                        "variable_suffix": "PFLEGE",
                                        "template_name": "FREITEXTFELD1PFLEGE",
                                        "content": "Pflegehinweise fuer dieses Produkt.",
                                        "product_location": "https://localhost/shop/api/v2/private/products/41"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productfreetexts Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productfreetexts.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductfreetextsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productfreetexts/search": {
            "get": {
                "tags": [
                    "productfreetexts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "string",
                                                        "example": "41-1-1"
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/productfreetexts/41-1-1"
                                                    },
                                                    "product_id": {
                                                        "type": "integer",
                                                        "example": 41
                                                    },
                                                    "lang_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "counter": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "variable_suffix": {
                                                        "type": "string",
                                                        "example": "PFLEGE"
                                                    },
                                                    "template_name": {
                                                        "type": "string",
                                                        "example": "FREITEXTFELD1PFLEGE"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "41-1-1",
                                            "location": "https://localhost/shop/api/v2/private/productfreetexts/41-1-1",
                                            "product_id": 41,
                                            "lang_id": 1,
                                            "counter": 1,
                                            "variable_suffix": "PFLEGE",
                                            "template_name": "FREITEXTFELD1PFLEGE"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productfreetexts suchen.",
                "description": "Sucht Datensaetze fuer Productfreetexts anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductfreetextsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productimages": {
            "get": {
                "tags": [
                    "productimages"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "location": {
                                                        "type": "string"
                                                    },
                                                    "product_id": {
                                                        "type": "integer"
                                                    },
                                                    "media_type": {
                                                        "type": "string"
                                                    },
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "sort_order": {
                                                        "type": "integer"
                                                    },
                                                    "show_in_shop": {
                                                        "type": "boolean"
                                                    },
                                                    "url": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/productimages/1",
                                            "product_id": 41,
                                            "media_type": "image",
                                            "title": "Front image",
                                            "sort_order": 10,
                                            "show_in_shop": true,
                                            "url": "https://localhost/shop/images/artikel/front.jpg"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 10,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productimages abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productimages.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductimagesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "productimages"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "location": {
                                                    "type": "string"
                                                },
                                                "product_id": {
                                                    "type": "integer"
                                                },
                                                "product_location": {
                                                    "type": "string"
                                                },
                                                "media_type": {
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "sort_order": {
                                                    "type": "integer"
                                                },
                                                "show_in_shop": {
                                                    "type": "boolean"
                                                },
                                                "is_external": {
                                                    "type": "boolean"
                                                },
                                                "is_poster": {
                                                    "type": "boolean"
                                                },
                                                "tradebyte_type": {
                                                    "type": "string"
                                                },
                                                "video": {
                                                    "type": "object"
                                                },
                                                "original": {
                                                    "type": "object"
                                                },
                                                "thumbnails": {
                                                    "type": "object"
                                                },
                                                "assigned_variations": {
                                                    "type": "array"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/productimages/1",
                                        "product_id": 41,
                                        "product_location": "https://localhost/shop/api/v2/private/products/41",
                                        "media_type": "image",
                                        "title": "Front image",
                                        "sort_order": 10,
                                        "show_in_shop": true,
                                        "is_external": false,
                                        "is_poster": false,
                                        "tradebyte_type": "",
                                        "original": {
                                            "file": "front.jpg",
                                            "path": "images/artikel/front.jpg",
                                            "url": "https://localhost/shop/images/artikel/front.jpg",
                                            "width": 1200,
                                            "height": 900
                                        },
                                        "thumbnails": {
                                            "thumb1": {
                                                "file": "front_thumb_1.jpg",
                                                "path": "images/artikel/thumbs/front_thumb_1.jpg",
                                                "url": "https://localhost/shop/images/artikel/thumbs/front_thumb_1.jpg",
                                                "width": 100,
                                                "height": 100
                                            }
                                        },
                                        "assigned_variations": [
                                            {
                                                "variation_id": 1,
                                                "variation_location": "https://localhost/shop/api/v2/private/products/variations/1",
                                                "sort_order": 10
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Produktbild erstellen.",
                "description": "Laedt ein Originalbild als img/stream (wie andere API-Uploads), base64 oder URL, ordnet es einem Produkt und optional Varianten zu und erzeugt die normalen Produkt-Thumbnails.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostProductimagesPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "product_id"
                                ],
                                "properties": {
                                    "product_id": {
                                        "type": "integer",
                                        "minimum": 1
                                    },
                                    "img": {
                                        "type": "string",
                                        "description": "Originaldateiname fuer stream."
                                    },
                                    "stream": {
                                        "type": "string",
                                        "format": "byte"
                                    },
                                    "base64": {
                                        "type": "string",
                                        "format": "byte",
                                        "description": "Alias fuer stream."
                                    },
                                    "url": {
                                        "type": "string",
                                        "format": "uri"
                                    },
                                    "title": {
                                        "type": "string"
                                    },
                                    "sort_order": {
                                        "type": "integer"
                                    },
                                    "show_in_shop": {
                                        "type": "boolean"
                                    },
                                    "variation_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer",
                                            "minimum": 1
                                        }
                                    }
                                },
                                "oneOf": [
                                    {
                                        "required": [
                                            "stream",
                                            "img"
                                        ]
                                    },
                                    {
                                        "required": [
                                            "base64"
                                        ]
                                    },
                                    {
                                        "required": [
                                            "url"
                                        ]
                                    }
                                ]
                            },
                            "example": {
                                "product_id": 12345,
                                "url": "https://sap.example.org/images/4711.jpg",
                                "title": "Los 4711",
                                "sort_order": 10,
                                "show_in_shop": true,
                                "variation_ids": [
                                    23456
                                ]
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productimages.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productimages.create"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/productimages/{id}": {
            "get": {
                "tags": [
                    "productimages"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "location": {
                                                    "type": "string"
                                                },
                                                "product_id": {
                                                    "type": "integer"
                                                },
                                                "product_location": {
                                                    "type": "string"
                                                },
                                                "media_type": {
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "sort_order": {
                                                    "type": "integer"
                                                },
                                                "show_in_shop": {
                                                    "type": "boolean"
                                                },
                                                "is_external": {
                                                    "type": "boolean"
                                                },
                                                "is_poster": {
                                                    "type": "boolean"
                                                },
                                                "tradebyte_type": {
                                                    "type": "string"
                                                },
                                                "video": {
                                                    "type": "object"
                                                },
                                                "original": {
                                                    "type": "object"
                                                },
                                                "thumbnails": {
                                                    "type": "object"
                                                },
                                                "assigned_variations": {
                                                    "type": "array"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/productimages/1",
                                        "product_id": 41,
                                        "product_location": "https://localhost/shop/api/v2/private/products/41",
                                        "media_type": "image",
                                        "title": "Front image",
                                        "sort_order": 10,
                                        "show_in_shop": true,
                                        "is_external": false,
                                        "is_poster": false,
                                        "tradebyte_type": "",
                                        "original": {
                                            "file": "front.jpg",
                                            "path": "images/artikel/front.jpg",
                                            "url": "https://localhost/shop/images/artikel/front.jpg",
                                            "width": 1200,
                                            "height": 900
                                        },
                                        "thumbnails": {
                                            "thumb1": {
                                                "file": "front_thumb_1.jpg",
                                                "path": "images/artikel/thumbs/front_thumb_1.jpg",
                                                "url": "https://localhost/shop/images/artikel/thumbs/front_thumb_1.jpg",
                                                "width": 100,
                                                "height": 100
                                            }
                                        },
                                        "assigned_variations": [
                                            {
                                                "variation_id": 1,
                                                "variation_location": "https://localhost/shop/api/v2/private/products/variations/1",
                                                "sort_order": 10
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productimages Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productimages.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductimagesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "productimages"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "location": {
                                                    "type": "string"
                                                },
                                                "product_id": {
                                                    "type": "integer"
                                                },
                                                "product_location": {
                                                    "type": "string"
                                                },
                                                "media_type": {
                                                    "type": "string"
                                                },
                                                "title": {
                                                    "type": "string"
                                                },
                                                "sort_order": {
                                                    "type": "integer"
                                                },
                                                "show_in_shop": {
                                                    "type": "boolean"
                                                },
                                                "is_external": {
                                                    "type": "boolean"
                                                },
                                                "is_poster": {
                                                    "type": "boolean"
                                                },
                                                "tradebyte_type": {
                                                    "type": "string"
                                                },
                                                "video": {
                                                    "type": "object"
                                                },
                                                "original": {
                                                    "type": "object"
                                                },
                                                "thumbnails": {
                                                    "type": "object"
                                                },
                                                "assigned_variations": {
                                                    "type": "array"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/productimages/1",
                                        "product_id": 41,
                                        "product_location": "https://localhost/shop/api/v2/private/products/41",
                                        "media_type": "image",
                                        "title": "Front image",
                                        "sort_order": 10,
                                        "show_in_shop": true,
                                        "is_external": false,
                                        "is_poster": false,
                                        "tradebyte_type": "",
                                        "original": {
                                            "file": "front.jpg",
                                            "path": "images/artikel/front.jpg",
                                            "url": "https://localhost/shop/images/artikel/front.jpg",
                                            "width": 1200,
                                            "height": 900
                                        },
                                        "thumbnails": {
                                            "thumb1": {
                                                "file": "front_thumb_1.jpg",
                                                "path": "images/artikel/thumbs/front_thumb_1.jpg",
                                                "url": "https://localhost/shop/images/artikel/thumbs/front_thumb_1.jpg",
                                                "width": 100,
                                                "height": 100
                                            }
                                        },
                                        "assigned_variations": [
                                            {
                                                "variation_id": 1,
                                                "variation_location": "https://localhost/shop/api/v2/private/products/variations/1",
                                                "sort_order": 10
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Produktbild aktualisieren oder ersetzen.",
                "description": "Aktualisiert Metadaten. Wenn base64 oder url uebergeben wird, wird die Bilddatei inklusive Thumbnails ersetzt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutProductimagesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Bild-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "img": {
                                        "type": "string",
                                        "description": "Originaldateiname fuer stream."
                                    },
                                    "stream": {
                                        "type": "string",
                                        "format": "byte"
                                    },
                                    "base64": {
                                        "type": "string",
                                        "format": "byte",
                                        "description": "Alias fuer stream."
                                    },
                                    "url": {
                                        "type": "string",
                                        "format": "uri"
                                    },
                                    "title": {
                                        "type": "string"
                                    },
                                    "sort_order": {
                                        "type": "integer"
                                    },
                                    "show_in_shop": {
                                        "type": "boolean"
                                    },
                                    "variation_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer",
                                            "minimum": 1
                                        }
                                    }
                                }
                            },
                            "example": {
                                "title": "Los 4711 - Vorderseite",
                                "sort_order": 10,
                                "show_in_shop": true,
                                "variation_ids": [
                                    23456
                                ]
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productimages.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productimages.update"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "productimages"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Produktbild loeschen.",
                "description": "Loescht Bilddatei, Thumbnails und Variantenzuordnungen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteProductimagesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Bild-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productimages.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productimages.delete"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/productimages/search": {
            "get": {
                "tags": [
                    "productimages"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productimages.json#/properties/data/items"
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/productimages/1",
                                            "product_id": 41,
                                            "media_type": "image",
                                            "title": "Front image",
                                            "sort_order": 10,
                                            "show_in_shop": true,
                                            "url": "https://localhost/shop/images/artikel/front.jpg"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productimages suchen.",
                "description": "Sucht Datensaetze fuer Productimages anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductimagesSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productlicensekeys": {
            "get": {
                "tags": [
                    "productlicensekeys"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "location": {
                                                        "type": "string"
                                                    },
                                                    "product_id": {
                                                        "type": "integer"
                                                    },
                                                    "status": {
                                                        "type": "integer"
                                                    },
                                                    "status_name": {
                                                        "type": "string"
                                                    },
                                                    "order_id": {
                                                        "type": "integer"
                                                    },
                                                    "order_detail_id": {
                                                        "type": "integer"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/productlicensekeys/1",
                                            "product_id": 41,
                                            "status": 0,
                                            "status_name": "free",
                                            "order_id": 0,
                                            "order_detail_id": 0
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 10,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productlicensekeys abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productlicensekeys.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductlicensekeysPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productlicensekeys/{id}": {
            "get": {
                "tags": [
                    "productlicensekeys"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "location": {
                                                    "type": "string"
                                                },
                                                "product_id": {
                                                    "type": "integer"
                                                },
                                                "key": {
                                                    "type": "string"
                                                },
                                                "status": {
                                                    "type": "integer"
                                                },
                                                "status_name": {
                                                    "type": "string"
                                                },
                                                "order_id": {
                                                    "type": "integer"
                                                },
                                                "order_detail_id": {
                                                    "type": "integer"
                                                },
                                                "product_location": {
                                                    "type": "string"
                                                },
                                                "order_location": {
                                                    "type": "string"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/productlicensekeys/1",
                                        "product_id": 41,
                                        "key": "ABC-123-XYZ",
                                        "status": 0,
                                        "status_name": "free",
                                        "order_id": 0,
                                        "order_detail_id": 0,
                                        "product_location": "https://localhost/shop/api/v2/private/products/41",
                                        "order_location": ""
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productlicensekeys Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productlicensekeys.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductlicensekeysDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productlicensekeys/search": {
            "get": {
                "tags": [
                    "productlicensekeys"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productlicensekeys.json#/properties/data/items"
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/productlicensekeys/1",
                                            "product_id": 41,
                                            "status": 0,
                                            "status_name": "free",
                                            "order_id": 0,
                                            "order_detail_id": 0
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productlicensekeys suchen.",
                "description": "Sucht Datensaetze fuer Productlicensekeys anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductlicensekeysSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productnotifications": {
            "get": {
                "tags": [
                    "productnotifications"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "location": {
                                                        "type": "string"
                                                    },
                                                    "product_id": {
                                                        "type": "integer"
                                                    },
                                                    "variation_id": {
                                                        "type": "integer"
                                                    },
                                                    "email": {
                                                        "type": "string"
                                                    },
                                                    "enabled": {
                                                        "type": "boolean"
                                                    },
                                                    "status": {
                                                        "type": "integer"
                                                    },
                                                    "status_name": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/productnotifications/1",
                                            "product_id": 41,
                                            "variation_id": 0,
                                            "email": "customer@example.com",
                                            "enabled": true,
                                            "status": 0,
                                            "status_name": "open"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 10,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productnotifications abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productnotifications.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductnotificationsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productnotifications/{id}": {
            "get": {
                "tags": [
                    "productnotifications"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "location": {
                                                    "type": "string"
                                                },
                                                "product_id": {
                                                    "type": "integer"
                                                },
                                                "variation_id": {
                                                    "type": "integer"
                                                },
                                                "customer_id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "email": {
                                                    "type": "string"
                                                },
                                                "language_id": {
                                                    "type": "integer"
                                                },
                                                "multishop_id": {
                                                    "type": "integer"
                                                },
                                                "session_id": {
                                                    "type": "string"
                                                },
                                                "register_time": {
                                                    "type": "string"
                                                },
                                                "transmit_time": {
                                                    "type": "string"
                                                },
                                                "enabled": {
                                                    "type": "boolean"
                                                },
                                                "status": {
                                                    "type": "integer"
                                                },
                                                "status_name": {
                                                    "type": "string"
                                                },
                                                "product_location": {
                                                    "type": "string"
                                                },
                                                "variation_location": {
                                                    "type": "string"
                                                },
                                                "customer_location": {
                                                    "type": "string"
                                                },
                                                "variation_name": {
                                                    "type": "string"
                                                },
                                                "product_link": {
                                                    "type": "string"
                                                },
                                                "shop_name": {
                                                    "type": "string"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/productnotifications/1",
                                        "product_id": 41,
                                        "variation_id": 0,
                                        "customer_id": 0,
                                        "name": "Customer Name",
                                        "email": "customer@example.com",
                                        "language_id": 1,
                                        "multishop_id": 1,
                                        "session_id": "",
                                        "register_time": "2026-06-11 10:00:00",
                                        "transmit_time": "",
                                        "enabled": true,
                                        "status": 0,
                                        "status_name": "open",
                                        "product_location": "https://localhost/shop/api/v2/private/products/41",
                                        "variation_location": "",
                                        "customer_location": "",
                                        "variation_name": "",
                                        "product_link": "https://localhost/shop/product.html",
                                        "shop_name": "Shop"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productnotifications Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productnotifications.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductnotificationsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productnotifications/search": {
            "get": {
                "tags": [
                    "productnotifications"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productnotifications.json#/properties/data/items"
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/productnotifications/1",
                                            "product_id": 41,
                                            "variation_id": 0,
                                            "email": "customer@example.com",
                                            "enabled": true,
                                            "status": 0,
                                            "status_name": "open"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productnotifications suchen.",
                "description": "Sucht Datensaetze fuer Productnotifications anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductnotificationsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productnutrition": {
            "get": {
                "tags": [
                    "productnutrition"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productnutrition_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 3
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 23,
                                            "location": "https://localhost/shop/api/v2/private/productnutrition/23",
                                            "product_id": 41,
                                            "variation_id": 41,
                                            "nutrition_definition_id": 12,
                                            "type_id": 1,
                                            "type_name": "nutrition",
                                            "name": "Fett",
                                            "unit": "g",
                                            "sort_order": 2,
                                            "product_location": "https://localhost/shop/api/v2/private/products/41",
                                            "is_allergen": false,
                                            "is_caffeine": false,
                                            "show_always": true,
                                            "note": "fetthiwesi",
                                            "value_prefix": "<",
                                            "value": 10,
                                            "portion_value_prefix": "<",
                                            "portion_value": 1,
                                            "nrv": 123
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productnutrition abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productnutrition.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductnutritionPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productnutrition/{id}": {
            "get": {
                "tags": [
                    "productnutrition"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productnutrition_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 3
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 23,
                                            "location": "https://localhost/shop/api/v2/private/productnutrition/23",
                                            "product_id": 41,
                                            "variation_id": 41,
                                            "nutrition_definition_id": 12,
                                            "type_id": 1,
                                            "type_name": "nutrition",
                                            "name": "Fett",
                                            "unit": "g",
                                            "sort_order": 2,
                                            "product_location": "https://localhost/shop/api/v2/private/products/41",
                                            "is_allergen": false,
                                            "is_caffeine": false,
                                            "show_always": true,
                                            "note": "fetthiwesi",
                                            "value_prefix": "<",
                                            "value": 10,
                                            "portion_value_prefix": "<",
                                            "portion_value": 1,
                                            "nrv": 123
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productnutrition Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productnutrition.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductnutritionDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productnutrition/search": {
            "get": {
                "tags": [
                    "productnutrition"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productnutrition_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 23,
                                            "location": "https://localhost/shop/api/v2/private/productnutrition/23",
                                            "product_id": 41,
                                            "variation_id": 41,
                                            "nutrition_definition_id": 12,
                                            "type_id": 1,
                                            "type_name": "nutrition",
                                            "name": "Fett",
                                            "unit": "g",
                                            "sort_order": 2
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productnutrition suchen.",
                "description": "Sucht Datensaetze fuer Productnutrition anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductnutritionSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productorderfieldgroupassignments": {
            "get": {
                "tags": [
                    "productorderfieldgroupassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productorderfieldgroupassignment.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "3-12",
                                            "location": "https://localhost/shop/api/v2/private/productorderfieldgroupassignments/3-12",
                                            "group_id": 3,
                                            "group_location": "https://localhost/shop/api/v2/private/productorderfieldgroups/3",
                                            "order_field_id": 12,
                                            "order_field_location": "https://localhost/shop/api/v2/private/productorderfields/12",
                                            "sort_order": 10
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productorderfieldgroupassignments abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productorderfieldgroupassignments.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductorderfieldgroupassignmentsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "productorderfieldgroupassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "get_productorderfieldgroupassignment_entry.json"
                                        }
                                    }
                                },
                                "example": {
                                    "group_id": 3,
                                    "order_field_id": 12,
                                    "sort_order": 10
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productorderfieldgroupassignments anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Productorderfieldgroupassignments.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostProductorderfieldgroupassignmentsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "group_id",
                                    "order_field_id"
                                ],
                                "properties": {
                                    "group_id": {
                                        "type": "integer",
                                        "example": 3
                                    },
                                    "order_field_id": {
                                        "type": "integer",
                                        "example": 12
                                    },
                                    "sort_order": {
                                        "type": "integer",
                                        "example": 10
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productorderfieldgroupassignments/{id}": {
            "get": {
                "tags": [
                    "productorderfieldgroupassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "get_productorderfieldgroupassignment_entry.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": "3-12",
                                        "location": "https://localhost/shop/api/v2/private/productorderfieldgroupassignments/3-12",
                                        "group_id": 3,
                                        "group_location": "https://localhost/shop/api/v2/private/productorderfieldgroups/3",
                                        "order_field_id": 12,
                                        "order_field_location": "https://localhost/shop/api/v2/private/productorderfields/12",
                                        "sort_order": 10,
                                        "group_name": "Product options",
                                        "group_internal_name": "Default product options",
                                        "order_field_name": "Engraving text",
                                        "order_field_type_id": 1,
                                        "order_field_required": true
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productorderfieldgroupassignments Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productorderfieldgroupassignments.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductorderfieldgroupassignmentsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "productorderfieldgroupassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "get_productorderfieldgroupassignment_entry.json"
                                        }
                                    }
                                },
                                "example": {
                                    "group_id": 3,
                                    "order_field_id": 12,
                                    "sort_order": 10
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productorderfieldgroupassignments aktualisieren.",
                "description": "Schreibt die uebergebenen Felder fuer Productorderfieldgroupassignments.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutProductorderfieldgroupassignmentsDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "group_id",
                                    "order_field_id"
                                ],
                                "properties": {
                                    "group_id": {
                                        "type": "integer",
                                        "example": 3
                                    },
                                    "order_field_id": {
                                        "type": "integer",
                                        "example": 12
                                    },
                                    "sort_order": {
                                        "type": "integer",
                                        "example": 10
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "productorderfieldgroupassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productorderfieldgroupassignments loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Productorderfieldgroupassignments.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteProductorderfieldgroupassignmentsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productorderfieldgroupassignments/search": {
            "get": {
                "tags": [
                    "productorderfieldgroupassignments"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productorderfieldgroupassignment.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "3-12",
                                            "location": "https://localhost/shop/api/v2/private/productorderfieldgroupassignments/3-12",
                                            "group_id": 3,
                                            "group_location": "https://localhost/shop/api/v2/private/productorderfieldgroups/3",
                                            "order_field_id": 12,
                                            "order_field_location": "https://localhost/shop/api/v2/private/productorderfields/12",
                                            "sort_order": 10
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productorderfieldgroupassignments suchen.",
                "description": "Sucht Datensaetze fuer Productorderfieldgroupassignments anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductorderfieldgroupassignmentsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productorderfieldgroups": {
            "get": {
                "tags": [
                    "productorderfieldgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productorderfieldgroup.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 3,
                                            "location": "https://localhost/shop/api/v2/private/productorderfieldgroups/3",
                                            "name": "Product options",
                                            "internal_name": "Default product options",
                                            "artefresca_flag": false
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productorderfieldgroups abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productorderfieldgroups.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductorderfieldgroupsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "productorderfieldgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "get_productorderfieldgroup_entry.json"
                                        }
                                    }
                                },
                                "example": {
                                    "name": "Product options",
                                    "internal_name": "Default product options",
                                    "hint": "Choose the desired product options.",
                                    "artefresca_flag": false
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productorderfieldgroups anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Productorderfieldgroups.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostProductorderfieldgroupsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Product options"
                                    },
                                    "internal_name": {
                                        "type": "string",
                                        "example": "Default product options"
                                    },
                                    "hint": {
                                        "type": "string",
                                        "example": "Choose the desired product options."
                                    },
                                    "artefresca_flag": {
                                        "type": "boolean",
                                        "example": false
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productorderfieldgroups/{id}": {
            "get": {
                "tags": [
                    "productorderfieldgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "get_productorderfieldgroup_entry.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 3,
                                        "location": "https://localhost/shop/api/v2/private/productorderfieldgroups/3",
                                        "name": "Product options",
                                        "internal_name": "Default product options",
                                        "artefresca_flag": false,
                                        "hint": "Choose the desired product options.",
                                        "order_fields": [
                                            {
                                                "order_field_id": 12,
                                                "order_field_location": "https://localhost/shop/api/v2/private/productorderfields/12",
                                                "order_field_name": "Engraving text",
                                                "type_id": 1,
                                                "required": true,
                                                "sort_order": 10
                                            }
                                        ],
                                        "help_entries": []
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productorderfieldgroups Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productorderfieldgroups.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductorderfieldgroupsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "productorderfieldgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "get_productorderfieldgroup_entry.json"
                                        }
                                    }
                                },
                                "example": {
                                    "name": "Product options",
                                    "internal_name": "Default product options",
                                    "hint": "Choose the desired product options.",
                                    "artefresca_flag": false
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productorderfieldgroups aktualisieren.",
                "description": "Schreibt die uebergebenen Felder fuer Productorderfieldgroups.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutProductorderfieldgroupsDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Product options"
                                    },
                                    "internal_name": {
                                        "type": "string",
                                        "example": "Default product options"
                                    },
                                    "hint": {
                                        "type": "string",
                                        "example": "Choose the desired product options."
                                    },
                                    "artefresca_flag": {
                                        "type": "boolean",
                                        "example": false
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "productorderfieldgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productorderfieldgroups loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Productorderfieldgroups.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteProductorderfieldgroupsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productorderfieldgroups/search": {
            "get": {
                "tags": [
                    "productorderfieldgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productorderfieldgroup.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 3,
                                            "location": "https://localhost/shop/api/v2/private/productorderfieldgroups/3",
                                            "name": "Product options",
                                            "internal_name": "Default product options",
                                            "artefresca_flag": false
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productorderfieldgroups suchen.",
                "description": "Sucht Datensaetze fuer Productorderfieldgroups anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductorderfieldgroupsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productorderfields": {
            "get": {
                "tags": [
                    "productorderfields"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productorderfield.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 12,
                                            "location": "https://localhost/shop/api/v2/private/productorderfields/12",
                                            "name": "Engraving text",
                                            "type_id": 1,
                                            "type_name": "text",
                                            "required": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productorderfields abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productorderfields.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductorderfieldsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productorderfields/{id}": {
            "get": {
                "tags": [
                    "productorderfields"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "get_productorderfield.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 12,
                                        "location": "https://localhost/shop/api/v2/private/productorderfields/12",
                                        "name": "Engraving text",
                                        "type_id": 1,
                                        "type_name": "text",
                                        "required": true,
                                        "description": "Optional text printed on the product.",
                                        "presentation_type_id": 0,
                                        "presentation_type_name": "select",
                                        "multiline": false,
                                        "default_entry": "none",
                                        "calculation_method_id": 1,
                                        "calculation_method_name": "quantity_dependent",
                                        "discountable": false,
                                        "expression": "[x0]*[y]",
                                        "price_file": "",
                                        "tax_id": 1,
                                        "file_extensions": [],
                                        "legacy_group_id": 0,
                                        "sort_order": 0,
                                        "options": [],
                                        "formula_parameters": [],
                                        "additional_products": [],
                                        "groups": []
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productorderfields Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productorderfields.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductorderfieldsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productorderfields/search": {
            "get": {
                "tags": [
                    "productorderfields"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productorderfield.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 12,
                                            "location": "https://localhost/shop/api/v2/private/productorderfields/12",
                                            "name": "Engraving text",
                                            "type_id": 1,
                                            "type_name": "text",
                                            "required": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productorderfields suchen.",
                "description": "Sucht Datensaetze fuer Productorderfields anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductorderfieldsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productpaymentexclusions": {
            "get": {
                "tags": [
                    "productpaymentexclusions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productpaymentexclusion.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "41-1",
                                            "location": "https://localhost/shop/api/v2/private/productpaymentexclusions/41-1",
                                            "product_id": 41,
                                            "product_location": "https://localhost/shop/api/v2/private/products/41",
                                            "payment_type_id": 1,
                                            "payment_type_location": "https://localhost/shop/api/v2/private/paymenttypes/1"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productpaymentexclusions abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productpaymentexclusions.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductpaymentexclusionsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "productpaymentexclusions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "41-1"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productpaymentexclusions/41-1"
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 41
                                                },
                                                "product_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/products/41"
                                                },
                                                "payment_type_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "payment_type_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/paymenttypes/1"
                                                },
                                                "product_name": {
                                                    "type": "string",
                                                    "example": "Neff Broh Sonnenbrille black"
                                                },
                                                "product_sku": {
                                                    "type": "string",
                                                    "example": "41"
                                                },
                                                "payment_type_name": {
                                                    "type": "string",
                                                    "example": "PayPal"
                                                },
                                                "payment_type_active": {
                                                    "type": "boolean",
                                                    "example": true
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "product_id": 41,
                                    "payment_type_id": 1
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Productpaymentexclusions anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Productpaymentexclusions.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostProductpaymentexclusionsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "product_id",
                                    "payment_type_id"
                                ],
                                "properties": {
                                    "product_id": {
                                        "type": "integer",
                                        "example": 41
                                    },
                                    "payment_type_id": {
                                        "type": "integer",
                                        "example": 1
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productpaymentexclusions.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productpaymentexclusions.create"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/productpaymentexclusions/{id}": {
            "get": {
                "tags": [
                    "productpaymentexclusions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "41-1"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productpaymentexclusions/41-1"
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 41
                                                },
                                                "product_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/products/41"
                                                },
                                                "payment_type_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "payment_type_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/paymenttypes/1"
                                                },
                                                "product_name": {
                                                    "type": "string",
                                                    "example": "Neff Broh Sonnenbrille black"
                                                },
                                                "product_sku": {
                                                    "type": "string",
                                                    "example": "41"
                                                },
                                                "payment_type_name": {
                                                    "type": "string",
                                                    "example": "PayPal"
                                                },
                                                "payment_type_active": {
                                                    "type": "boolean",
                                                    "example": true
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": "41-1",
                                        "location": "https://localhost/shop/api/v2/private/productpaymentexclusions/41-1",
                                        "product_id": 41,
                                        "product_location": "https://localhost/shop/api/v2/private/products/41",
                                        "payment_type_id": 1,
                                        "payment_type_location": "https://localhost/shop/api/v2/private/paymenttypes/1",
                                        "product_name": "Neff Broh Sonnenbrille black",
                                        "product_sku": "41",
                                        "payment_type_name": "PayPal",
                                        "payment_type_active": true
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productpaymentexclusions Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productpaymentexclusions.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductpaymentexclusionsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "productpaymentexclusions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productpaymentexclusions loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Productpaymentexclusions.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteProductpaymentexclusionsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productpaymentexclusions/search": {
            "get": {
                "tags": [
                    "productpaymentexclusions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productpaymentexclusion.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "41-1",
                                            "location": "https://localhost/shop/api/v2/private/productpaymentexclusions/41-1",
                                            "product_id": 41,
                                            "product_location": "https://localhost/shop/api/v2/private/products/41",
                                            "payment_type_id": 1,
                                            "payment_type_location": "https://localhost/shop/api/v2/private/paymenttypes/1"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productpaymentexclusions suchen.",
                "description": "Sucht Datensaetze fuer Productpaymentexclusions anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductpaymentexclusionsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productpaymentexclusions/bulk": {
            "post": {
                "tags": [
                    "productpaymentexclusions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "success": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "items": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "product_id": {
                                                                "type": "integer",
                                                                "example": 63
                                                            },
                                                            "created": {
                                                                "type": "integer",
                                                                "example": 3
                                                            },
                                                            "existing": {
                                                                "type": "integer",
                                                                "example": 4
                                                            },
                                                            "errors": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "code": {
                                                                            "type": "string",
                                                                            "example": "invalid_payment_type_id"
                                                                        },
                                                                        "message": {
                                                                            "type": "string",
                                                                            "example": "Paymenttype not found in Shop."
                                                                        },
                                                                        "field": {
                                                                            "type": "string",
                                                                            "example": "excluded_payment_type_ids"
                                                                        },
                                                                        "value": {
                                                                            "type": "integer",
                                                                            "nullable": true,
                                                                            "example": 999999
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                },
                                                "summary": {
                                                    "type": "object",
                                                    "properties": {
                                                        "products": {
                                                            "type": "integer",
                                                            "example": 1
                                                        },
                                                        "created": {
                                                            "type": "integer",
                                                            "example": 3
                                                        },
                                                        "existing": {
                                                            "type": "integer",
                                                            "example": 4
                                                        },
                                                        "errors": {
                                                            "type": "integer",
                                                            "example": 0
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "success": true,
                                    "data": {
                                        "items": [
                                            {
                                                "product_id": 63,
                                                "created": 3,
                                                "existing": 4,
                                                "errors": []
                                            },
                                            {
                                                "product_id": 64,
                                                "created": 6,
                                                "existing": 0,
                                                "errors": [
                                                    {
                                                        "code": "invalid_payment_type_id",
                                                        "message": "Paymenttype not found in Shop.",
                                                        "field": "excluded_payment_type_ids",
                                                        "value": 999999
                                                    }
                                                ]
                                            }
                                        ],
                                        "summary": {
                                            "products": 2,
                                            "created": 9,
                                            "existing": 4,
                                            "errors": 1
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Zahlungsarten-Ausschluesse fuer mehrere Produkte ergaenzen.",
                "description": "Verarbeitet alle Produkte unabhaengig voneinander. Vorhandene Ausschluesse bleiben bestehen und werden als existing gezaehlt; fehlende werden angelegt. Fehlerhafte Produkt- oder Zahlungsart-IDs brechen den Bulk nicht ab.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostProductpaymentexclusionsBulkPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "array",
                                "description": "Produkte und die zu ergaenzenden Zahlungsarten-Ausschluesse. Vorhandene, nicht uebergebene Ausschluesse werden nicht geloescht.",
                                "items": {
                                    "type": "object",
                                    "required": [
                                        "product_id",
                                        "excluded_payment_type_ids"
                                    ],
                                    "properties": {
                                        "product_id": {
                                            "type": "integer",
                                            "minimum": 1,
                                            "example": 63
                                        },
                                        "excluded_payment_type_ids": {
                                            "type": "array",
                                            "description": "Eindeutige IDs der auszuschliessenden Zahlungsarten. Doppelte IDs innerhalb eines Produkts werden nur einmal verarbeitet.",
                                            "items": {
                                                "type": "integer",
                                                "minimum": 1
                                            },
                                            "example": [
                                                1,
                                                2,
                                                3,
                                                5,
                                                6,
                                                7,
                                                8
                                            ]
                                        }
                                    }
                                }
                            },
                            "example": [
                                {
                                    "product_id": 63,
                                    "excluded_payment_type_ids": [
                                        1,
                                        2,
                                        3,
                                        5,
                                        6,
                                        7,
                                        8
                                    ]
                                },
                                {
                                    "product_id": 64,
                                    "excluded_payment_type_ids": [
                                        1,
                                        2,
                                        3,
                                        5,
                                        6,
                                        7,
                                        8
                                    ]
                                }
                            ]
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productpaymentexclusions.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productpaymentexclusions.create"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/productpresenters": {
            "get": {
                "tags": [
                    "productpresenters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "description": "Id des Objects",
                                                "example": 1
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri",
                                                "description": "API Url zum Object",
                                                "example": "https://localhost/shop/api/v2/private/productpresenters/1"
                                            },
                                            "page_name": {
                                                "type": "string",
                                                "description": "Frontendbereich",
                                                "example": "categories"
                                            },
                                            "page_label": {
                                                "type": "string",
                                                "description": "Bezeichnung des Frontendbereichs",
                                                "example": "Kategorie"
                                            },
                                            "multishop_id": {
                                                "type": "integer",
                                                "description": "Id des Multishops, 0 fuer alle Shops",
                                                "example": 1
                                            },
                                            "multishop_name": {
                                                "type": "string",
                                                "description": "Bezeichnung des Multishops",
                                                "example": "Hauptshop"
                                            },
                                            "view": {
                                                "type": "string",
                                                "description": "Standard-Ansicht",
                                                "example": "gallery"
                                            },
                                            "sort": {
                                                "type": "string",
                                                "description": "Standard-Sortierung",
                                                "example": "a-z"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/productpresenters/1",
                                        "page_name": "default",
                                        "page_label": "Standard",
                                        "multishop_id": 0,
                                        "multishop_name": "alle Multishops",
                                        "view": "gallery",
                                        "sort": "a-z"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Produktdarstellungs-Konfigurationen abrufen.",
                "description": "Liefert Daten fuer mehrere Produktdarstellungs-Konfigurationen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetProductpresentersPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "page_name": {
                                    "type": "string"
                                },
                                "multishop_id": {
                                    "type": "integer"
                                },
                                "view": {
                                    "type": "string"
                                },
                                "sort": {
                                    "type": "string"
                                }
                            }
                        },
                        "description": "Filtert nach Frontendbereich, Multishop, Ansicht oder Sortierung"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productpresenters.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productpresenters.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "productpresenters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Produktdarstellungs-Konfiguration erstellen.",
                "description": "Erstellt eine Produktdarstellungs-Konfiguration.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostProductpresentersPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "page_name"
                                ],
                                "properties": {
                                    "page_name": {
                                        "type": "string",
                                        "description": "Frontendbereich",
                                        "example": "categories"
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Id des Multishops, 0 fuer alle Shops",
                                        "example": 1
                                    },
                                    "sort": {
                                        "type": "string",
                                        "description": "Standard-Sortierung",
                                        "example": "a-z"
                                    },
                                    "view": {
                                        "type": "string",
                                        "description": "Standard-Ansicht",
                                        "example": "gallery"
                                    },
                                    "limit": {
                                        "type": "string",
                                        "description": "Index fuer Artikel pro Seite oder inhert",
                                        "example": "3"
                                    },
                                    "sort_switchable": {
                                        "type": "boolean",
                                        "description": "Sortierung im Frontend wechselbar",
                                        "example": true
                                    },
                                    "view_switchable": {
                                        "type": "boolean",
                                        "description": "Ansicht im Frontend wechselbar",
                                        "example": true
                                    },
                                    "limit_switchable": {
                                        "type": "boolean",
                                        "description": "Artikel pro Seite im Frontend wechselbar",
                                        "example": true
                                    },
                                    "header_visible": {
                                        "type": "boolean",
                                        "description": "Kopfzeile anzeigen",
                                        "example": true
                                    },
                                    "footer_visible": {
                                        "type": "boolean",
                                        "description": "Fusszeile anzeigen",
                                        "example": true
                                    },
                                    "onepage": {
                                        "type": "boolean",
                                        "description": "Weitere Produkte auf gleicher Seite nachladen",
                                        "example": true
                                    },
                                    "image_slider": {
                                        "type": "boolean",
                                        "description": "Bildslider fuer Produkte verwenden",
                                        "example": true
                                    },
                                    "gallery_items": {
                                        "type": "integer",
                                        "description": "Artikel nebeneinander in Galerie-Ansicht",
                                        "example": 3
                                    },
                                    "gallery_basketbutton": {
                                        "type": "integer",
                                        "description": "Warenkorbbutton in Galerie-Ansicht: 0 nein, 1 ja, 2 bei Mouseover",
                                        "example": 2
                                    }
                                }
                            },
                            "example": {
                                "page_name": "categories",
                                "multishop_id": 1,
                                "sort": "a-z",
                                "view": "gallery",
                                "limit": "3",
                                "sort_switchable": true,
                                "view_switchable": true,
                                "limit_switchable": true,
                                "header_visible": true,
                                "footer_visible": true,
                                "onepage": true,
                                "image_slider": true,
                                "gallery_items": 3,
                                "gallery_basketbutton": 2
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productpresenters.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productpresenters.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/productpresenters/{id}": {
            "get": {
                "tags": [
                    "productpresenters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": 1
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Object",
                                            "example": "https://localhost/shop/api/v2/private/productpresenters/1"
                                        },
                                        "page_name": {
                                            "type": "string",
                                            "description": "Frontendbereich",
                                            "example": "categories"
                                        },
                                        "page_label": {
                                            "type": "string",
                                            "description": "Bezeichnung des Frontendbereichs",
                                            "example": "Kategorie"
                                        },
                                        "multishop_id": {
                                            "type": "integer",
                                            "description": "Id des Multishops, 0 fuer alle Shops",
                                            "example": 1
                                        },
                                        "multishop_name": {
                                            "type": "string",
                                            "description": "Bezeichnung des Multishops",
                                            "example": "Hauptshop"
                                        },
                                        "sort": {
                                            "type": "string",
                                            "description": "Standard-Sortierung",
                                            "example": "a-z"
                                        },
                                        "sort_name": {
                                            "type": "string",
                                            "description": "Bezeichnung der Standard-Sortierung",
                                            "example": "A-Z"
                                        },
                                        "sort_switchable": {
                                            "type": "boolean",
                                            "description": "Sortierung im Frontend wechselbar",
                                            "example": true
                                        },
                                        "view": {
                                            "type": "string",
                                            "description": "Standard-Ansicht",
                                            "example": "gallery"
                                        },
                                        "view_name": {
                                            "type": "string",
                                            "description": "Bezeichnung der Standard-Ansicht",
                                            "example": "Gallerie-Ansicht"
                                        },
                                        "view_switchable": {
                                            "type": "boolean",
                                            "description": "Ansicht im Frontend wechselbar",
                                            "example": true
                                        },
                                        "limit": {
                                            "type": "string",
                                            "description": "Index fuer Artikel pro Seite oder inhert",
                                            "example": "3"
                                        },
                                        "entries_per_page": {
                                            "type": [
                                                "integer",
                                                "string"
                                            ],
                                            "description": "Aktive Anzahl Artikel pro Seite",
                                            "example": 12
                                        },
                                        "entries_per_page_options": {
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            }
                                        },
                                        "limit_switchable": {
                                            "type": "boolean",
                                            "description": "Artikel pro Seite im Frontend wechselbar",
                                            "example": true
                                        },
                                        "header_visible": {
                                            "type": "boolean",
                                            "description": "Kopfzeile anzeigen",
                                            "example": true
                                        },
                                        "footer_visible": {
                                            "type": "boolean",
                                            "description": "Fusszeile anzeigen",
                                            "example": true
                                        },
                                        "onepage": {
                                            "type": "boolean",
                                            "description": "Weitere Produkte auf gleicher Seite nachladen",
                                            "example": true
                                        },
                                        "image_slider": {
                                            "type": "boolean",
                                            "description": "Bildslider fuer Produkte verwenden",
                                            "example": true
                                        },
                                        "gallery_items": {
                                            "type": "integer",
                                            "description": "Artikel nebeneinander in Galerie-Ansicht",
                                            "example": 3
                                        },
                                        "gallery_basketbutton": {
                                            "type": "integer",
                                            "description": "Warenkorbbutton in Galerie-Ansicht: 0 nein, 1 ja, 2 bei Mouseover",
                                            "example": 2
                                        },
                                        "available_pages": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "available_sorts": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "available_views": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/productpresenters/1",
                                    "page_name": "categories",
                                    "page_label": "Kategorie",
                                    "multishop_id": 1,
                                    "multishop_name": "Hauptshop",
                                    "sort": "a-z",
                                    "sort_name": "A-Z",
                                    "sort_switchable": true,
                                    "view": "gallery",
                                    "view_name": "Gallerie-Ansicht",
                                    "view_switchable": true,
                                    "limit": "3",
                                    "entries_per_page": 12,
                                    "entries_per_page_options": [
                                        3,
                                        6,
                                        9,
                                        12
                                    ],
                                    "limit_switchable": true,
                                    "header_visible": true,
                                    "footer_visible": true,
                                    "onepage": true,
                                    "image_slider": true,
                                    "gallery_items": 3,
                                    "gallery_basketbutton": 2,
                                    "available_pages": [
                                        {
                                            "value": "default",
                                            "name": "Standard"
                                        }
                                    ],
                                    "available_sorts": [
                                        {
                                            "value": "a-z",
                                            "name": "A-Z"
                                        }
                                    ],
                                    "available_views": [
                                        {
                                            "value": "gallery",
                                            "name": "Gallerie-Ansicht"
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Produktdarstellungs-Konfiguration abrufen.",
                "description": "Liefert Daten zu einer Produktdarstellungs-Konfiguration.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetProductpresentersDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Produktdarstellungs-Konfigurations-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productpresenters.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productpresenters.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "productpresenters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Produktdarstellungs-Konfiguration aktualisieren.",
                "description": "Aktualisiert eine Produktdarstellungs-Konfiguration.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutProductpresentersDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Produktdarstellungs-Konfigurations-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "page_name": {
                                        "type": "string",
                                        "description": "Frontendbereich",
                                        "example": "categories"
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Id des Multishops, 0 fuer alle Shops",
                                        "example": 1
                                    },
                                    "sort": {
                                        "type": "string",
                                        "description": "Standard-Sortierung",
                                        "example": "a-z"
                                    },
                                    "view": {
                                        "type": "string",
                                        "description": "Standard-Ansicht",
                                        "example": "gallery"
                                    },
                                    "limit": {
                                        "type": "string",
                                        "description": "Index fuer Artikel pro Seite oder inhert",
                                        "example": "3"
                                    },
                                    "sort_switchable": {
                                        "type": "boolean",
                                        "description": "Sortierung im Frontend wechselbar",
                                        "example": true
                                    },
                                    "view_switchable": {
                                        "type": "boolean",
                                        "description": "Ansicht im Frontend wechselbar",
                                        "example": true
                                    },
                                    "limit_switchable": {
                                        "type": "boolean",
                                        "description": "Artikel pro Seite im Frontend wechselbar",
                                        "example": true
                                    },
                                    "header_visible": {
                                        "type": "boolean",
                                        "description": "Kopfzeile anzeigen",
                                        "example": true
                                    },
                                    "footer_visible": {
                                        "type": "boolean",
                                        "description": "Fusszeile anzeigen",
                                        "example": true
                                    },
                                    "onepage": {
                                        "type": "boolean",
                                        "description": "Weitere Produkte auf gleicher Seite nachladen",
                                        "example": true
                                    },
                                    "image_slider": {
                                        "type": "boolean",
                                        "description": "Bildslider fuer Produkte verwenden",
                                        "example": true
                                    },
                                    "gallery_items": {
                                        "type": "integer",
                                        "description": "Artikel nebeneinander in Galerie-Ansicht",
                                        "example": 3
                                    },
                                    "gallery_basketbutton": {
                                        "type": "integer",
                                        "description": "Warenkorbbutton in Galerie-Ansicht: 0 nein, 1 ja, 2 bei Mouseover",
                                        "example": 2
                                    }
                                }
                            },
                            "example": {
                                "sort": "price-asc",
                                "view": "list",
                                "limit": "4",
                                "image_slider": false
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productpresenters.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productpresenters.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "productpresenters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Produktdarstellungs-Konfiguration loeschen.",
                "description": "Loescht eine Produktdarstellungs-Konfiguration.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteProductpresentersDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Produktdarstellungs-Konfigurations-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productpresenters.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productpresenters.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/productpresenters/search": {
            "get": {
                "tags": [
                    "productpresenters"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "v2/docs/returns/Productpresenters/get_productpresenter.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/productpresenters/1",
                                        "page_name": "categories",
                                        "page_label": "Kategorie",
                                        "multishop_id": 1,
                                        "multishop_name": "Hauptshop",
                                        "sort": "a-z",
                                        "sort_name": "A-Z",
                                        "sort_switchable": true,
                                        "view": "gallery",
                                        "view_name": "Gallerie-Ansicht",
                                        "view_switchable": true,
                                        "limit": "3",
                                        "entries_per_page": 12,
                                        "entries_per_page_options": [
                                            3,
                                            6,
                                            9,
                                            12
                                        ],
                                        "limit_switchable": true,
                                        "header_visible": true,
                                        "footer_visible": true,
                                        "onepage": true,
                                        "image_slider": true,
                                        "gallery_items": 3,
                                        "gallery_basketbutton": 2,
                                        "available_pages": [
                                            {
                                                "value": "default",
                                                "name": "Standard"
                                            }
                                        ],
                                        "available_sorts": [
                                            {
                                                "value": "a-z",
                                                "name": "A-Z"
                                            }
                                        ],
                                        "available_views": [
                                            {
                                                "value": "gallery",
                                                "name": "Gallerie-Ansicht"
                                            }
                                        ]
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Produktdarstellungs-Konfigurationen nach einem String.",
                "description": "Sucht in Produktdarstellungs-Konfigurationen nach Frontendbereich.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetProductpresentersSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productpresenters.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productpresenters.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/productratings": {
            "get": {
                "tags": [
                    "productratings"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "location": {
                                                        "type": "string"
                                                    },
                                                    "product_id": {
                                                        "type": "integer"
                                                    },
                                                    "variation_id": {
                                                        "type": "integer"
                                                    },
                                                    "points": {
                                                        "type": "integer"
                                                    },
                                                    "headline": {
                                                        "type": "string"
                                                    },
                                                    "active": {
                                                        "type": "boolean"
                                                    },
                                                    "status_name": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/productratings/1",
                                            "product_id": 41,
                                            "variation_id": 0,
                                            "points": 5,
                                            "headline": "Great product",
                                            "active": true,
                                            "status_name": "active"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 10,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productratings abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productratings.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductratingsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productratings/{id}": {
            "get": {
                "tags": [
                    "productratings"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "location": {
                                                    "type": "string"
                                                },
                                                "product_id": {
                                                    "type": "integer"
                                                },
                                                "variation_id": {
                                                    "type": "integer"
                                                },
                                                "customer_id": {
                                                    "type": "integer"
                                                },
                                                "first_name": {
                                                    "type": "string"
                                                },
                                                "last_name": {
                                                    "type": "string"
                                                },
                                                "state": {
                                                    "type": "string"
                                                },
                                                "order_number": {
                                                    "type": "string"
                                                },
                                                "rating_date": {
                                                    "type": "string"
                                                },
                                                "rating_date_display": {
                                                    "type": "string"
                                                },
                                                "points": {
                                                    "type": "integer"
                                                },
                                                "headline": {
                                                    "type": "string"
                                                },
                                                "active": {
                                                    "type": "boolean"
                                                },
                                                "status_name": {
                                                    "type": "string"
                                                },
                                                "product_location": {
                                                    "type": "string"
                                                },
                                                "variation_location": {
                                                    "type": "string"
                                                },
                                                "customer_location": {
                                                    "type": "string"
                                                },
                                                "text": {
                                                    "type": "string"
                                                },
                                                "comment": {
                                                    "type": "string"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/productratings/1",
                                        "product_id": 41,
                                        "variation_id": 0,
                                        "customer_id": 0,
                                        "first_name": "Max",
                                        "last_name": "Mustermann",
                                        "state": "Sachsen",
                                        "order_number": "10001",
                                        "rating_date": "2026-06-11 10:00:00",
                                        "rating_date_display": "11.06.2026 10:00:00",
                                        "points": 5,
                                        "headline": "Great product",
                                        "active": true,
                                        "status_name": "active",
                                        "product_location": "https://localhost/shop/api/v2/private/products/41",
                                        "variation_location": "",
                                        "customer_location": "",
                                        "text": "Very good product.",
                                        "comment": "Thanks for your feedback."
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productratings Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productratings.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductratingsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productratings/search": {
            "get": {
                "tags": [
                    "productratings"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productratings.json#/properties/data/items"
                                            }
                                        },
                                        "total": {
                                            "type": "integer"
                                        },
                                        "limit": {
                                            "type": "integer"
                                        },
                                        "offset": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/productratings/1",
                                            "product_id": 41,
                                            "variation_id": 0,
                                            "points": 5,
                                            "headline": "Great product",
                                            "active": true,
                                            "status_name": "active"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productratings suchen.",
                "description": "Sucht Datensaetze fuer Productratings anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductratingsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/products": {
            "post": {
                "tags": [
                    "products"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "product_id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "variation_id": {
                                            "type": "integer"
                                        },
                                        "sku": {
                                            "type": "string"
                                        },
                                        "variations": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "variation_id": {
                                                        "type": "integer"
                                                    },
                                                    "sku": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "success",
                                    "data": {
                                        "product_id": 1234,
                                        "location": "https://shop.example/api/v2/private/products/1234",
                                        "variation_id": 5678,
                                        "sku": "SAP-4711",
                                        "variations": [
                                            {
                                                "variation_id": 5678,
                                                "sku": "SAP-4711"
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Produkt erstellen.",
                "description": "Erstellt ein allgemeines Produkt. Der Body verwendet dieselben Feldnamen wie die Produkt-GET-Antwort und kann eine flache Standardvariante oder mehrere Eintraege in variations enthalten. Wiederholungen koennen mit dem Header Idempotency-Key sicher wiederholt werden.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostProductsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    },
                                    "sub_name": {
                                        "type": "string"
                                    },
                                    "name2": {
                                        "type": "string"
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "description2": {
                                        "type": "string"
                                    },
                                    "description_short": {
                                        "type": "string"
                                    },
                                    "status": {
                                        "type": "boolean"
                                    },
                                    "tax_id": {
                                        "type": "integer"
                                    },
                                    "differenzsteuer": {
                                        "type": "boolean"
                                    },
                                    "manufactor_id": {
                                        "type": "integer"
                                    },
                                    "supplier_id": {
                                        "type": "integer"
                                    },
                                    "unit_id": {
                                        "type": "integer"
                                    },
                                    "availability_id": {
                                        "type": "integer"
                                    },
                                    "seo": {
                                        "type": "object"
                                    },
                                    "stock_price_settings": {
                                        "type": "object"
                                    },
                                    "more_info": {
                                        "type": "object"
                                    },
                                    "durability_guarantee": {
                                        "type": "object",
                                        "description": "Konfiguration der gewerblichen Haltbarkeitsgarantie (EU-GARAN). Leere Produktwerte erben die Hersteller-Standards. Fuer label/statement werden beim Upload file und Base64-stream gesendet; delete=true entfernt die Datei.",
                                        "properties": {
                                            "mode": {
                                                "type": "string",
                                                "enum": [
                                                    "none",
                                                    "active"
                                                ]
                                            },
                                            "label_mode": {
                                                "type": "string",
                                                "enum": [
                                                    "automatic",
                                                    "upload"
                                                ]
                                            },
                                            "duration_years": {
                                                "type": "number",
                                                "nullable": true,
                                                "minimum": 2.5,
                                                "maximum": 99,
                                                "multipleOf": 0.5
                                            },
                                            "producer_name": {
                                                "type": "string"
                                            },
                                            "model_identifier": {
                                                "type": "string"
                                            },
                                            "free_of_charge": {
                                                "type": "boolean"
                                            },
                                            "label": {
                                                "type": "object",
                                                "properties": {
                                                    "file": {
                                                        "type": "string"
                                                    },
                                                    "stream": {
                                                        "type": "string",
                                                        "format": "byte"
                                                    },
                                                    "delete": {
                                                        "type": "boolean"
                                                    }
                                                }
                                            },
                                            "statement": {
                                                "type": "object",
                                                "properties": {
                                                    "file": {
                                                        "type": "string"
                                                    },
                                                    "stream": {
                                                        "type": "string",
                                                        "format": "byte"
                                                    },
                                                    "delete": {
                                                        "type": "boolean"
                                                    }
                                                }
                                            },
                                            "bundle_mode": {
                                                "type": "string",
                                                "enum": [
                                                    "none",
                                                    "whole_bundle",
                                                    "components"
                                                ]
                                            },
                                            "bundle_hint": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "sku": {
                                        "type": "string",
                                        "description": "SKU der Standardvariante, wenn variations nicht verwendet wird."
                                    },
                                    "enabled": {
                                        "type": "boolean"
                                    },
                                    "stock": {
                                        "type": "object",
                                        "description": "Depotbestaende der Variante. Der Gesamtbestand der Variante wird automatisch als Summe aller nicht ausgeschlossenen Depots gespeichert."
                                    },
                                    "price_data": {
                                        "type": "object"
                                    },
                                    "special": {
                                        "type": "object",
                                        "additionalProperties": true,
                                        "description": "Freie Zusatzdaten der Standardvariante, analog zu Orders.special."
                                    },
                                    "variations": {
                                        "type": "array",
                                        "items": {
                                            "type": "object",
                                            "required": [
                                                "sku"
                                            ],
                                            "properties": {
                                                "sku": {
                                                    "type": "string"
                                                },
                                                "enabled": {
                                                    "type": "boolean"
                                                },
                                                "special": {
                                                    "type": "object",
                                                    "additionalProperties": true,
                                                    "description": "Freie Zusatzdaten dieser Variante, analog zu Orders.special."
                                                },
                                                "durability_guarantee": {
                                                    "type": "object",
                                                    "description": "Variantenbezogene GARAN-Uebersteuerung. Nur fuer Produkte mit echter Variantengruppe relevant.",
                                                    "properties": {
                                                        "mode": {
                                                            "type": "string",
                                                            "enum": [
                                                                "inherit_product",
                                                                "none",
                                                                "override"
                                                            ]
                                                        },
                                                        "label_mode": {
                                                            "type": "string",
                                                            "enum": [
                                                                "automatic",
                                                                "upload"
                                                            ]
                                                        },
                                                        "duration_years": {
                                                            "type": "number",
                                                            "nullable": true,
                                                            "minimum": 2.5,
                                                            "maximum": 99,
                                                            "multipleOf": 0.5
                                                        },
                                                        "producer_name": {
                                                            "type": "string"
                                                        },
                                                        "model_identifier": {
                                                            "type": "string"
                                                        },
                                                        "free_of_charge": {
                                                            "type": "boolean"
                                                        },
                                                        "label": {
                                                            "type": "object",
                                                            "properties": {
                                                                "file": {
                                                                    "type": "string"
                                                                },
                                                                "stream": {
                                                                    "type": "string",
                                                                    "format": "byte"
                                                                },
                                                                "delete": {
                                                                    "type": "boolean"
                                                                }
                                                            }
                                                        },
                                                        "statement": {
                                                            "type": "object",
                                                            "properties": {
                                                                "file": {
                                                                    "type": "string"
                                                                },
                                                                "stream": {
                                                                    "type": "string",
                                                                    "format": "byte"
                                                                },
                                                                "delete": {
                                                                    "type": "boolean"
                                                                }
                                                            }
                                                        }
                                                    }
                                                },
                                                "variation_values": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "required": [
                                                            "item_id"
                                                        ],
                                                        "properties": {
                                                            "item_id": {
                                                                "type": "integer"
                                                            }
                                                        }
                                                    }
                                                },
                                                "stock": {
                                                    "type": "object"
                                                },
                                                "price_data": {
                                                    "type": "object"
                                                }
                                            }
                                        }
                                    }
                                }
                            },
                            "example": {
                                "name": "Allgemeines API-Produkt",
                                "description": "Langbeschreibung",
                                "description_short": "Kurzbeschreibung",
                                "status": true,
                                "tax_id": 1,
                                "supplier_id": 4,
                                "durability_guarantee": {
                                    "mode": "active",
                                    "label_mode": "upload",
                                    "duration_years": 5,
                                    "producer_name": "APT-Ebusiness GmbH",
                                    "model_identifier": "SAP-4711",
                                    "free_of_charge": true,
                                    "label": {
                                        "file": "garan-label.svg",
                                        "stream": "PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg=="
                                    },
                                    "statement": {
                                        "file": "garantiebedingungen.pdf",
                                        "stream": "JVBERi0xLjQKJSVFT0Y="
                                    }
                                },
                                "more_info": {
                                    "general": {
                                        "min_order_quantity": 1,
                                        "max_order_quantity": 1
                                    }
                                },
                                "sku": "SAP-4711",
                                "enabled": true,
                                "availability_id": 1,
                                "special": {
                                    "external_reference": "SAP-4711",
                                    "source": "LEIHHAUS.ONE"
                                },
                                "stock": {
                                    "depots": [
                                        {
                                            "depot_id": 1,
                                            "quantity": 1
                                        }
                                    ]
                                },
                                "price_data": {
                                    "pricegroups": [
                                        {
                                            "pricegroup_id": 0,
                                            "prices": [
                                                {
                                                    "price_unit": 1,
                                                    "price": {
                                                        "amount": 149
                                                    }
                                                }
                                            ]
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "products.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "products.create"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            },
            "get": {
                "tags": [
                    "products"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "example": 123
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri",
                                                "example": "https://localhost/shop/api/v2/private/products/123"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 123,
                                        "location": "https://localhost/shop/api/v2/private/products/123"
                                    },
                                    {
                                        "id": 124,
                                        "location": "https://localhost/shop/api/v2/private/products/124"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Produkte abrufen.",
                "description": "Liefert die APi Location f\u00fcr mehrere Produkte.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetProductsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zur\u00fcckgegebenen Datens\u00e4tze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "status": {
                                    "type": "string"
                                }
                            }
                        },
                        "description": "Filtert nach z.b. Produktstatus"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "products.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "products.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/products/{id}/variationgroups": {
            "post": {
                "tags": [
                    "products"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Variantengruppe einem Produkt zuordnen.",
                "description": "Erstellt oder aktualisiert die Zuordnung einer vorhandenen Variantengruppe zum Produkt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostProductsVariationgroupsPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Produkt-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "\"variation_group_id\"": {
                                        "type": "string"
                                    },
                                    "\"sort_order\"": {
                                        "type": "string"
                                    },
                                    "\"required\"": {
                                        "type": "string"
                                    },
                                    "\"active\"": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "products.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "products.create"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/products/{id}/orderfields": {
            "post": {
                "tags": [
                    "products"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Bestellmerkmal einem Produkt zuordnen.",
                "description": "Erstellt oder aktualisiert die Zuordnung eines vorhandenen Bestellmerkmals zum Produkt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostProductsOrderfieldsPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Produkt-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "\"order_field_id\"": {
                                        "type": "string"
                                    },
                                    "\"group_id\"": {
                                        "type": "string"
                                    },
                                    "\"sort_order\"": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "products.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "products.create"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/products/{id}": {
            "get": {
                "tags": [
                    "products"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Antwort auf GET /private/Products/{id} \u2013 Produktdetails mit Varianten, Preis- und Lagerinformationen",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Eindeutige Produkt-ID",
                                            "example": 202
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API-Link zum Produkt",
                                            "example": "https://localhost/shop/api/v2/private/products/202"
                                        },
                                        "name": {
                                            "type": "string",
                                            "description": "Produktname",
                                            "example": "APT Herren T-Shirt"
                                        },
                                        "description": {
                                            "type": "string",
                                            "description": "Detaillierte Produktbeschreibung",
                                            "example": "Hochwertiges Baumwoll-T-Shirt in verschiedenen Farben und Gr\u00f6\u00dfen."
                                        },
                                        "description2": {
                                            "type": "string",
                                            "nullable": true,
                                            "description": "Erweiterte Beschreibung (optional)",
                                            "example": "Klassischer Schnitt, 100% Baumwolle, fair produziert."
                                        },
                                        "description_short": {
                                            "type": "string",
                                            "description": "Kurzbeschreibung",
                                            "example": "APT T-Shirt"
                                        },
                                        "seo": {
                                            "type": "object",
                                            "description": "SEO-Daten des Produkts.",
                                            "properties": {
                                                "title": {
                                                    "type": "string",
                                                    "description": "Meta-Titel",
                                                    "example": "APT Herren T-Shirt online kaufen"
                                                },
                                                "description": {
                                                    "type": "string",
                                                    "description": "Meta-Beschreibung",
                                                    "example": "APT Herren T-Shirt aus nachhaltiger Baumwolle direkt online kaufen."
                                                },
                                                "keywords": {
                                                    "type": "string",
                                                    "description": "Meta-Keywords",
                                                    "example": "T-Shirt, Baumwolle, APT"
                                                }
                                            }
                                        },
                                        "link": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "\u00d6ffentlicher Link zum Produkt im Shop",
                                            "example": "https://localhost/shop/produkte/apt-tshirt"
                                        },
                                        "tax_id": {
                                            "type": "integer",
                                            "description": "Steuersatz-ID",
                                            "example": 1
                                        },
                                        "tax_rate": {
                                            "type": "number",
                                            "format": "float",
                                            "description": "Steuersatz in Prozent",
                                            "example": 19
                                        },
                                        "differenzsteuer": {
                                            "type": "boolean",
                                            "description": "Ob Differenzbesteuerung aktiv ist",
                                            "example": false
                                        },
                                        "datum": {
                                            "type": "string",
                                            "format": "date",
                                            "description": "Erstellungsdatum des Artikels",
                                            "example": "2025-02-20"
                                        },
                                        "manufactor_id": {
                                            "type": "integer",
                                            "description": "Hersteller-ID",
                                            "example": 12
                                        },
                                        "manufactor_location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API-Link zum Hersteller",
                                            "example": "https://localhost/shop/api/v2/private/manufactors/12"
                                        },
                                        "manufactor_name": {
                                            "type": "string",
                                            "description": "Herstellername",
                                            "example": "APT Textil GmbH"
                                        },
                                        "unit_id": {
                                            "type": "integer",
                                            "description": "Einheits-ID",
                                            "example": 3
                                        },
                                        "unit_name": {
                                            "type": "string",
                                            "description": "Einheitsbezeichnung",
                                            "example": "St\u00fcck"
                                        },
                                        "supplier_id": {
                                            "type": "integer",
                                            "description": "Lieferanten-ID",
                                            "example": 8
                                        },
                                        "supplier_name": {
                                            "type": "string",
                                            "description": "Lieferantenname",
                                            "example": "FashionSupplier AG"
                                        },
                                        "availability_id": {
                                            "type": "integer",
                                            "description": "Verf\u00fcgbarkeits-ID",
                                            "example": 1
                                        },
                                        "availability_name": {
                                            "type": "string",
                                            "description": "Verf\u00fcgbarkeitsname",
                                            "example": "Sofort lieferbar"
                                        },
                                        "status": {
                                            "type": "boolean",
                                            "description": "Produktstatus (aktiv/inaktiv)",
                                            "example": true
                                        },
                                        "durability_guarantee": {
                                            "type": "object",
                                            "description": "Produktkonfiguration der gewerblichen Haltbarkeitsgarantie (EU-GARAN). applicable ist bei digitalen Produkten und Gutscheinen false. Leere Werte werden bei aktiver Garantie vom Hersteller geerbt.",
                                            "properties": {
                                                "applicable": {
                                                    "type": "boolean",
                                                    "readOnly": true
                                                },
                                                "mode": {
                                                    "type": "string",
                                                    "enum": [
                                                        "none",
                                                        "active"
                                                    ]
                                                },
                                                "label_mode": {
                                                    "type": "string",
                                                    "enum": [
                                                        "automatic",
                                                        "upload"
                                                    ]
                                                },
                                                "duration_years": {
                                                    "type": "number",
                                                    "nullable": true
                                                },
                                                "producer_name": {
                                                    "type": "string"
                                                },
                                                "model_identifier": {
                                                    "type": "string"
                                                },
                                                "free_of_charge": {
                                                    "type": "boolean"
                                                },
                                                "label": {
                                                    "type": "object",
                                                    "properties": {
                                                        "file": {
                                                            "type": "string"
                                                        },
                                                        "path": {
                                                            "type": "string"
                                                        },
                                                        "url": {
                                                            "type": "string",
                                                            "format": "uri"
                                                        }
                                                    }
                                                },
                                                "statement": {
                                                    "type": "object",
                                                    "properties": {
                                                        "file": {
                                                            "type": "string"
                                                        },
                                                        "path": {
                                                            "type": "string"
                                                        },
                                                        "url": {
                                                            "type": "string",
                                                            "format": "uri"
                                                        }
                                                    }
                                                },
                                                "bundle_mode": {
                                                    "type": "string",
                                                    "enum": [
                                                        "none",
                                                        "whole_bundle",
                                                        "components"
                                                    ]
                                                },
                                                "bundle_hint": {
                                                    "type": "string"
                                                }
                                            }
                                        },
                                        "special": {
                                            "type": "object",
                                            "additionalProperties": true,
                                            "description": "Freie Zusatzdaten der Standardvariante. Bei Variantenprodukten steht special innerhalb des jeweiligen variations-Eintrags.",
                                            "example": {
                                                "external_reference": "SAP-4711",
                                                "source": "LEIHHAUS.ONE"
                                            }
                                        },
                                        "master_data": {
                                            "type": "object",
                                            "description": "Zusatzblock fuer include=master_data. Enthalt die Stammdaten aus der Backend-Section Stammdaten. Einige Werte koennen im Legacy-Response bereits doppelt vorhanden sein.",
                                            "properties": {
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 202
                                                },
                                                "product_type_id": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "product_type_name": {
                                                    "type": "string",
                                                    "example": "Versandprodukt"
                                                },
                                                "status": {
                                                    "type": "boolean",
                                                    "example": true
                                                },
                                                "created_date": {
                                                    "type": "string",
                                                    "format": "date",
                                                    "example": "2025-02-20"
                                                },
                                                "public_link": {
                                                    "type": "string",
                                                    "format": "uri"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "sub_name": {
                                                    "type": "string"
                                                },
                                                "name2": {
                                                    "type": "string"
                                                },
                                                "description_short": {
                                                    "type": "string"
                                                },
                                                "description": {
                                                    "type": "string"
                                                },
                                                "description2": {
                                                    "type": "string"
                                                },
                                                "internal_note": {
                                                    "type": "string"
                                                },
                                                "manufacturer": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "location": {
                                                            "type": "string",
                                                            "format": "uri"
                                                        }
                                                    }
                                                },
                                                "supplier": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        },
                                                        "location": {
                                                            "type": "string",
                                                            "format": "uri"
                                                        }
                                                    }
                                                },
                                                "unit": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        }
                                                    }
                                                },
                                                "tax": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "rate": {
                                                            "type": "number",
                                                            "format": "float"
                                                        },
                                                        "differential_taxation": {
                                                            "type": "boolean"
                                                        }
                                                    }
                                                },
                                                "availability": {
                                                    "type": "object",
                                                    "properties": {
                                                        "id": {
                                                            "type": "integer"
                                                        },
                                                        "name": {
                                                            "type": "string"
                                                        }
                                                    }
                                                },
                                                "facebook_open_graph": {
                                                    "type": "object",
                                                    "description": "Facebook/OpenGraph-Daten aus dem Stammdatenbereich.",
                                                    "properties": {
                                                        "image": {
                                                            "type": "object",
                                                            "properties": {
                                                                "file": {
                                                                    "type": "string"
                                                                },
                                                                "path": {
                                                                    "type": "string"
                                                                },
                                                                "url": {
                                                                    "type": "string",
                                                                    "format": "uri"
                                                                }
                                                            }
                                                        }
                                                    }
                                                },
                                                "contained_in_bundles": {
                                                    "type": "array",
                                                    "description": "Bundles, in denen dieses Produkt enthalten ist. Reiner GET-Kontext aus der Backend-Uebersicht.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "bundle_id": {
                                                                "type": "integer"
                                                            },
                                                            "product_id": {
                                                                "type": "integer"
                                                            },
                                                            "product_location": {
                                                                "type": "string",
                                                                "format": "uri"
                                                            },
                                                            "product_name": {
                                                                "type": "string"
                                                            },
                                                            "product_status": {
                                                                "type": "boolean",
                                                                "nullable": true
                                                            },
                                                            "variation_id": {
                                                                "type": "integer"
                                                            },
                                                            "quantity": {
                                                                "type": "number"
                                                            },
                                                            "dynamic_variation": {
                                                                "type": "boolean"
                                                            },
                                                            "selectable_variation_ids": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "integer"
                                                                }
                                                            }
                                                        }
                                                    }
                                                },
                                                "purchase_settings": {
                                                    "type": "object",
                                                    "description": "Nur in Shops mit LEIHHAUS/ALTSTADT-Spezialfeldern vorhanden.",
                                                    "properties": {
                                                        "purchase_enabled": {
                                                            "type": "boolean"
                                                        },
                                                        "max_purchase_quantity": {
                                                            "type": "string"
                                                        },
                                                        "max_sale_quantity": {
                                                            "type": "string"
                                                        },
                                                        "purchase_surcharge": {
                                                            "type": "string"
                                                        },
                                                        "sale_surcharge": {
                                                            "type": "string"
                                                        },
                                                        "stone": {
                                                            "type": "string"
                                                        },
                                                        "carat_quality": {
                                                            "type": "string"
                                                        },
                                                        "size": {
                                                            "type": "string"
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "images": {
                                            "type": "array",
                                            "description": "Zusatzblock fuer include=images. Enthalt Produktbilder und Videos aus der Backend-Section Produktbilder.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "image_id": {
                                                        "type": "integer"
                                                    },
                                                    "media_type": {
                                                        "type": "string",
                                                        "enum": [
                                                            "image",
                                                            "video"
                                                        ]
                                                    },
                                                    "title": {
                                                        "type": "string"
                                                    },
                                                    "sort_order": {
                                                        "type": "integer"
                                                    },
                                                    "show_in_shop": {
                                                        "type": "boolean"
                                                    },
                                                    "is_external": {
                                                        "type": "boolean"
                                                    },
                                                    "is_poster": {
                                                        "type": "boolean"
                                                    },
                                                    "tradebyte_type": {
                                                        "type": "string"
                                                    },
                                                    "video": {
                                                        "type": "object",
                                                        "properties": {
                                                            "provider": {
                                                                "type": "string"
                                                            },
                                                            "mime_type": {
                                                                "type": "string"
                                                            },
                                                            "url": {
                                                                "type": "string"
                                                            },
                                                            "file_url": {
                                                                "type": "string",
                                                                "format": "uri"
                                                            },
                                                            "poster_image_id": {
                                                                "type": "integer"
                                                            }
                                                        }
                                                    },
                                                    "original": {
                                                        "$ref": "#/properties/images/items/properties/thumbnails/properties/thumb1"
                                                    },
                                                    "thumbnails": {
                                                        "type": "object",
                                                        "properties": {
                                                            "thumb1": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "file": {
                                                                        "type": "string"
                                                                    },
                                                                    "path": {
                                                                        "type": "string"
                                                                    },
                                                                    "url": {
                                                                        "type": "string",
                                                                        "format": "uri"
                                                                    },
                                                                    "width": {
                                                                        "type": "integer"
                                                                    },
                                                                    "height": {
                                                                        "type": "integer"
                                                                    }
                                                                }
                                                            },
                                                            "thumb2": {
                                                                "$ref": "#/properties/images/items/properties/thumbnails/properties/thumb1"
                                                            },
                                                            "thumb3": {
                                                                "$ref": "#/properties/images/items/properties/thumbnails/properties/thumb1"
                                                            },
                                                            "thumb4": {
                                                                "$ref": "#/properties/images/items/properties/thumbnails/properties/thumb1"
                                                            }
                                                        }
                                                    },
                                                    "assigned_variations": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "variation_id": {
                                                                    "type": "integer"
                                                                },
                                                                "sort_order": {
                                                                    "type": "integer"
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "categories": {
                                            "type": "array",
                                            "description": "Zusatzblock fuer include=categories. Produktgruppen-Zuordnungen, ggf. je Variante.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "category_id": {
                                                        "type": "integer"
                                                    },
                                                    "category_name": {
                                                        "type": "string"
                                                    },
                                                    "category_location": {
                                                        "type": "string",
                                                        "format": "uri"
                                                    },
                                                    "path": {
                                                        "type": "string"
                                                    },
                                                    "is_main_category": {
                                                        "type": "boolean"
                                                    },
                                                    "sort_order": {
                                                        "type": "integer"
                                                    },
                                                    "assignment_scope": {
                                                        "type": "string",
                                                        "enum": [
                                                            "product",
                                                            "variation"
                                                        ]
                                                    },
                                                    "variation_ids": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "integer"
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "more_info": {
                                            "type": "object",
                                            "description": "Zusatzblock fuer include=more_info. Weitere Angaben aus dem Backendbereich.",
                                            "properties": {
                                                "general": {
                                                    "type": "object"
                                                },
                                                "placements": {
                                                    "type": "object"
                                                },
                                                "shipping": {
                                                    "type": "object"
                                                },
                                                "exclusions": {
                                                    "type": "object"
                                                },
                                                "free_product": {
                                                    "type": "object"
                                                },
                                                "search_subscription_purchase": {
                                                    "type": "object"
                                                },
                                                "cross_selling": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                },
                                                "free_texts": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                },
                                                "bulletpoints": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                },
                                                "faqs": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                }
                                            }
                                        },
                                        "attributes": {
                                            "type": "array",
                                            "description": "Zusatzblock fuer include=attributes. Produktmerkmal-Zuordnungen als Summary.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "attribute_id": {
                                                        "type": "integer"
                                                    },
                                                    "attribute_name": {
                                                        "type": "string"
                                                    },
                                                    "show_in_filter": {
                                                        "type": "boolean",
                                                        "nullable": true
                                                    },
                                                    "show_on_detail": {
                                                        "type": "boolean",
                                                        "nullable": true
                                                    },
                                                    "private": {
                                                        "type": "boolean",
                                                        "nullable": true
                                                    },
                                                    "schema_org": {
                                                        "type": "boolean",
                                                        "nullable": true
                                                    },
                                                    "presentation_type_id": {
                                                        "type": "integer",
                                                        "nullable": true
                                                    },
                                                    "value_id": {
                                                        "type": "integer"
                                                    },
                                                    "value_name": {
                                                        "type": "string"
                                                    },
                                                    "assignment_scope": {
                                                        "type": "string",
                                                        "enum": [
                                                            "product",
                                                            "variation"
                                                        ]
                                                    },
                                                    "variation_ids": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "integer"
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "nutrition": {
                                            "type": "object",
                                            "description": "Zusatzblock fuer include=nutrition. Naehrwert- und Lebensmittelangaben je Variante.",
                                            "properties": {
                                                "module_active": {
                                                    "type": "boolean",
                                                    "nullable": true
                                                },
                                                "variations": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "variation_id": {
                                                                "type": "integer",
                                                                "nullable": true
                                                            },
                                                            "sku": {
                                                                "type": "string"
                                                            },
                                                            "variation_name": {
                                                                "type": "string"
                                                            },
                                                            "general": {
                                                                "type": "object"
                                                            },
                                                            "flags": {
                                                                "type": "object"
                                                            },
                                                            "texts": {
                                                                "type": "object"
                                                            },
                                                            "additional": {
                                                                "type": "object"
                                                            },
                                                            "assigned_data": {
                                                                "type": "object",
                                                                "description": "Zugeordnete Zutaten, Naehrwerte, weitere Naehrwerte, Aminosaeuren, Vitamine und Mineralstoffe.",
                                                                "properties": {
                                                                    "calorific_value": {
                                                                        "type": "object"
                                                                    },
                                                                    "ingredients": {
                                                                        "type": "array",
                                                                        "items": {
                                                                            "type": "object"
                                                                        }
                                                                    },
                                                                    "nutrients": {
                                                                        "type": "array",
                                                                        "items": {
                                                                            "type": "object"
                                                                        }
                                                                    },
                                                                    "additional_nutrients": {
                                                                        "type": "array",
                                                                        "items": {
                                                                            "type": "object"
                                                                        }
                                                                    },
                                                                    "amino_acids": {
                                                                        "type": "array",
                                                                        "items": {
                                                                            "type": "object"
                                                                        }
                                                                    },
                                                                    "vitamins": {
                                                                        "type": "array",
                                                                        "items": {
                                                                            "type": "object"
                                                                        }
                                                                    },
                                                                    "minerals": {
                                                                        "type": "array",
                                                                        "items": {
                                                                            "type": "object"
                                                                        }
                                                                    }
                                                                }
                                                            },
                                                            "tags": {
                                                                "type": "array",
                                                                "description": "Von der bestehenden Naehrwert-Template-Logik erzeugte Name/Wert-Angaben.",
                                                                "items": {
                                                                    "type": "object"
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "bundle": {
                                            "type": "object",
                                            "description": "Zusatzblock fuer include=bundle. Bundle-Zuordnungen des Produkts.",
                                            "properties": {
                                                "is_bundle": {
                                                    "type": "boolean",
                                                    "nullable": true
                                                },
                                                "has_selectable_bundle_items": {
                                                    "type": "boolean",
                                                    "nullable": true
                                                },
                                                "items": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "bundle_id": {
                                                                "type": "integer",
                                                                "nullable": true
                                                            },
                                                            "product_id": {
                                                                "type": "integer",
                                                                "nullable": true
                                                            },
                                                            "product_location": {
                                                                "type": "string",
                                                                "format": "uri"
                                                            },
                                                            "product_name": {
                                                                "type": "string"
                                                            },
                                                            "variation_id": {
                                                                "type": "integer",
                                                                "nullable": true
                                                            },
                                                            "variation_sku": {
                                                                "type": "string"
                                                            },
                                                            "variation_name": {
                                                                "type": "string"
                                                            },
                                                            "quantity": {
                                                                "type": "number",
                                                                "nullable": true
                                                            },
                                                            "dynamic_variation": {
                                                                "type": "boolean",
                                                                "nullable": true
                                                            },
                                                            "selectable_variation_ids": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "integer"
                                                                }
                                                            },
                                                            "selectable_variations": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "variation_id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "sku": {
                                                                            "type": "string"
                                                                        },
                                                                        "variation_name": {
                                                                            "type": "string"
                                                                        },
                                                                        "quantity": {
                                                                            "type": "number",
                                                                            "nullable": true
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "license_keys": {
                                            "type": "object",
                                            "description": "Zusatzblock fuer include=license_keys. Lizenzschluessel virtueller Produkte.",
                                            "properties": {
                                                "is_virtual_product": {
                                                    "type": "boolean",
                                                    "nullable": true
                                                },
                                                "keys": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "license_key_id": {
                                                                "type": "integer",
                                                                "nullable": true
                                                            },
                                                            "key": {
                                                                "type": "string"
                                                            },
                                                            "status": {
                                                                "type": "integer"
                                                            },
                                                            "status_name": {
                                                                "type": "string"
                                                            },
                                                            "order_id": {
                                                                "type": "integer"
                                                            },
                                                            "order_detail_id": {
                                                                "type": "integer"
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "order_fields": {
                                            "type": "array",
                                            "description": "Zusatzblock fuer include=order_fields. Bestellmerkmale als Summary.",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "order_field_id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "type_id": {
                                                        "type": "integer"
                                                    },
                                                    "type_name": {
                                                        "type": "string"
                                                    },
                                                    "required": {
                                                        "type": "boolean"
                                                    },
                                                    "group_id": {
                                                        "type": "integer"
                                                    },
                                                    "sort_order": {
                                                        "type": "integer"
                                                    }
                                                }
                                            }
                                        },
                                        "downloads": {
                                            "type": "array",
                                            "description": "Zusatzblock fuer include=downloads. Datenblaetter und externe Links.",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "visibility": {
                                            "type": "object",
                                            "description": "Zusatzblock fuer include=visibility. Kundengruppen-Sichtbarkeit.",
                                            "properties": {
                                                "visible_for_custgroups": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                }
                                            }
                                        },
                                        "payment": {
                                            "type": "object",
                                            "description": "Zusatzblock fuer include=payment. Ausgeschlossene Zahlarten.",
                                            "properties": {
                                                "excluded_payment_types": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                }
                                            }
                                        },
                                        "shipping_methods": {
                                            "type": "object",
                                            "description": "Zusatzblock fuer include=shipping_methods. Zugeordnete Versandarten.",
                                            "properties": {
                                                "assigned_shipping_methods": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                }
                                            }
                                        },
                                        "shipping_countries": {
                                            "type": "object",
                                            "description": "Zusatzblock fuer include=shipping_countries. Ausgeschlossene Versandlaender.",
                                            "properties": {
                                                "excluded_countries": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                }
                                            }
                                        },
                                        "sizegroup_id": {
                                            "type": "integer",
                                            "nullable": true,
                                            "description": "Gr\u00f6\u00dfengruppen-ID (nur bei Variantenartikeln)"
                                        },
                                        "sizegroup_name": {
                                            "type": "string",
                                            "nullable": true,
                                            "description": "Gr\u00f6\u00dfengruppenname"
                                        },
                                        "colorgroup_id": {
                                            "type": "integer",
                                            "nullable": true,
                                            "description": "Farbgruppen-ID (nur bei Variantenartikeln)"
                                        },
                                        "colorgroup_name": {
                                            "type": "string",
                                            "nullable": true,
                                            "description": "Farbgruppenname"
                                        },
                                        "variations": {
                                            "type": "array",
                                            "description": "Liste der Varianten (falls vorhanden)",
                                            "items": {
                                                "type": "object",
                                                "description": "Bei einem Produkt ohne Varianten h\u00e4ngen diese properties in der 1.Ebene",
                                                "properties": {
                                                    "variation_id": {
                                                        "type": "integer",
                                                        "description": "Varianten-ID"
                                                    },
                                                    "variation_name": {
                                                        "type": "string",
                                                        "description": "Dimensionsunabhaengiger Variantenname"
                                                    },
                                                    "variation_values": {
                                                        "type": "array",
                                                        "description": "Zugeordnete Variantengruppen und Werte in Artikelreihenfolge",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "group_id": {
                                                                    "type": "integer"
                                                                },
                                                                "group_name": {
                                                                    "type": "string"
                                                                },
                                                                "item_id": {
                                                                    "type": "integer"
                                                                },
                                                                "item_name": {
                                                                    "type": "string"
                                                                },
                                                                "legacy_type": {
                                                                    "type": "string",
                                                                    "nullable": true
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "sku": {
                                                        "type": "string",
                                                        "description": "Artikelnummer der Variante"
                                                    },
                                                    "order_nr": {
                                                        "type": "string",
                                                        "description": "Bestellnummer der Variante"
                                                    },
                                                    "special": {
                                                        "type": "object",
                                                        "additionalProperties": true,
                                                        "description": "Freie Zusatzdaten dieser Variante, analog zu Orders.special."
                                                    },
                                                    "durability_guarantee": {
                                                        "type": "object",
                                                        "description": "GARAN-Einstellung dieser Variante. Leere Override-Werte erben vom Produkt beziehungsweise Hersteller.",
                                                        "properties": {
                                                            "mode": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "inherit_product",
                                                                    "none",
                                                                    "override"
                                                                ]
                                                            },
                                                            "label_mode": {
                                                                "type": "string",
                                                                "enum": [
                                                                    "automatic",
                                                                    "upload"
                                                                ]
                                                            },
                                                            "duration_years": {
                                                                "type": "number",
                                                                "nullable": true
                                                            },
                                                            "producer_name": {
                                                                "type": "string"
                                                            },
                                                            "model_identifier": {
                                                                "type": "string"
                                                            },
                                                            "free_of_charge": {
                                                                "type": "boolean"
                                                            },
                                                            "label": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "file": {
                                                                        "type": "string"
                                                                    },
                                                                    "path": {
                                                                        "type": "string"
                                                                    },
                                                                    "url": {
                                                                        "type": "string",
                                                                        "format": "uri"
                                                                    }
                                                                }
                                                            },
                                                            "statement": {
                                                                "type": "object",
                                                                "properties": {
                                                                    "file": {
                                                                        "type": "string"
                                                                    },
                                                                    "path": {
                                                                        "type": "string"
                                                                    },
                                                                    "url": {
                                                                        "type": "string",
                                                                        "format": "uri"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "ean": {
                                                        "type": "string",
                                                        "nullable": true,
                                                        "description": "EAN der Variante"
                                                    },
                                                    "isbn": {
                                                        "type": "string",
                                                        "nullable": true,
                                                        "description": "ISBN der Variante"
                                                    },
                                                    "asin": {
                                                        "type": "string",
                                                        "nullable": true,
                                                        "description": "Amazon-ASIN"
                                                    },
                                                    "upc": {
                                                        "type": "string",
                                                        "nullable": true,
                                                        "description": "UPC-Code"
                                                    },
                                                    "weight": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "description": "Gewicht der Variante in kg"
                                                    },
                                                    "shippingweight": {
                                                        "type": "number",
                                                        "format": "float",
                                                        "description": "Versandgewicht in kg"
                                                    },
                                                    "availability_id": {
                                                        "type": "integer",
                                                        "description": "Verf\u00fcgbarkeits-ID der Variante"
                                                    },
                                                    "availability_name": {
                                                        "type": "string",
                                                        "description": "Verf\u00fcgbarkeitsname der Variante"
                                                    },
                                                    "stock": {
                                                        "type": "object",
                                                        "properties": {
                                                            "stock_real": {
                                                                "type": "integer",
                                                                "description": "Der reale Gesamtbestand"
                                                            },
                                                            "stock_available": {
                                                                "type": "integer",
                                                                "description": "Der kaufbare Bestand"
                                                            },
                                                            "stock_reserved": {
                                                                "type": "integer",
                                                                "description": "Der reservierte Bestand"
                                                            },
                                                            "depots": {
                                                                "type": "array",
                                                                "description": "Lagerbest\u00e4nde nach Depot",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "depot_id": {
                                                                            "type": "integer",
                                                                            "description": "Depot-ID"
                                                                        },
                                                                        "stock": {
                                                                            "type": "integer",
                                                                            "description": "Lagerbestand im jeweiligen Depot"
                                                                        },
                                                                        "stock_details": {
                                                                            "type": "array",
                                                                            "description": "Lagerpl\u00e4tze im Depot",
                                                                            "items": {
                                                                                "type": "object",
                                                                                "properties": {
                                                                                    "storage_location_id": {
                                                                                        "type": "integer",
                                                                                        "description": "Storage-Location-ID"
                                                                                    },
                                                                                    "stock": {
                                                                                        "type": "integer",
                                                                                        "description": "Bestand im Lagerplatz"
                                                                                    },
                                                                                    "regal": {
                                                                                        "type": "integer",
                                                                                        "description": "Regalnummer"
                                                                                    },
                                                                                    "fach": {
                                                                                        "type": "integer",
                                                                                        "description": "Fachnummer"
                                                                                    },
                                                                                    "boden": {
                                                                                        "type": "integer",
                                                                                        "description": "Bodennummer"
                                                                                    },
                                                                                    "lagerort": {
                                                                                        "type": "string",
                                                                                        "description": "Hinweis zum Lagerplatz"
                                                                                    },
                                                                                    "mhd": {
                                                                                        "type": "string",
                                                                                        "format": "date",
                                                                                        "description": "MHD"
                                                                                    },
                                                                                    "charge": {
                                                                                        "type": "string",
                                                                                        "description": "Chargennummer"
                                                                                    }
                                                                                }
                                                                            }
                                                                        },
                                                                        "depot_name": {
                                                                            "type": "string",
                                                                            "description": "Depotname"
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "price_data": {
                                                        "type": "object",
                                                        "description": "Preisstruktur der Variante",
                                                        "properties": {
                                                            "pricegroups": {
                                                                "type": "array",
                                                                "description": "Array mit den Preisen der Preisgruppen",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "pricegroup_id": {
                                                                            "type": "integer",
                                                                            "description": "Id der Preisgruppe"
                                                                        },
                                                                        "pricegroup_name": {
                                                                            "type": "string",
                                                                            "description": "Bezeichnung der Preisgruppe"
                                                                        },
                                                                        "prices": {
                                                                            "type": "array",
                                                                            "description": "Liste der Preise",
                                                                            "items": {
                                                                                "type": "object",
                                                                                "properties": {
                                                                                    "price_unit": {
                                                                                        "type": "number",
                                                                                        "description": "Mengen-Einheit f\u00fcr den Preis",
                                                                                        "example": 5
                                                                                    },
                                                                                    "price": {
                                                                                        "type": "object",
                                                                                        "description": "der Verkaufspreis",
                                                                                        "properties": {
                                                                                            "amount": {
                                                                                                "type": "number",
                                                                                                "format": "float"
                                                                                            },
                                                                                            "include_tax": {
                                                                                                "type": "boolean"
                                                                                            }
                                                                                        }
                                                                                    },
                                                                                    "price_special": {
                                                                                        "type": "object",
                                                                                        "description": "der Sonderpreis",
                                                                                        "properties": {
                                                                                            "amount": {
                                                                                                "type": "number",
                                                                                                "format": "float"
                                                                                            },
                                                                                            "include_tax": {
                                                                                                "type": "boolean"
                                                                                            }
                                                                                        }
                                                                                    },
                                                                                    "price_special_limited_time": {
                                                                                        "type": "object",
                                                                                        "description": "der zeitlich begrenzte Sonderpreis",
                                                                                        "properties": {
                                                                                            "amount": {
                                                                                                "type": "number",
                                                                                                "format": "float"
                                                                                            },
                                                                                            "include_tax": {
                                                                                                "type": "boolean"
                                                                                            },
                                                                                            "start": {
                                                                                                "type": "string",
                                                                                                "format": "date-time",
                                                                                                "description": "Startzeit"
                                                                                            },
                                                                                            "end": {
                                                                                                "type": "string",
                                                                                                "format": "date-time",
                                                                                                "description": "Endzeit"
                                                                                            }
                                                                                        }
                                                                                    }
                                                                                }
                                                                            }
                                                                        }
                                                                    }
                                                                }
                                                            },
                                                            "repurchase_price": {
                                                                "type": "object",
                                                                "description": "Angaben zum Einkaufspreis",
                                                                "properties": {
                                                                    "amount": {
                                                                        "type": "number",
                                                                        "format": "float"
                                                                    },
                                                                    "include_tax": {
                                                                        "type": "boolean"
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "examples": {
                                    "Kurzform": {
                                        "summary": "Produkt ohne Varianten",
                                        "value": [
                                            {
                                                "id": 101,
                                                "location": "https://localhost/shop/api/v2/private/products/101",
                                                "name": "APT Coffee Mug",
                                                "description": "Keramik-Kaffeebecher mit APT-Logo",
                                                "description2": "Sp\u00fclmaschinenfest und mikrowellengeeignet",
                                                "description_short": "Keramikbecher 300ml",
                                                "seo": {
                                                    "title": "APT Coffee Mug online kaufen",
                                                    "description": "Keramik-Kaffeebecher mit APT-Logo direkt online kaufen.",
                                                    "keywords": "Kaffeebecher, Mug, APT"
                                                },
                                                "link": "https://localhost/shop/produkte/apt-coffee-mug",
                                                "tax_id": 1,
                                                "tax_rate": 19,
                                                "differenzsteuer": false,
                                                "datum": "2025-01-12",
                                                "manufactor_id": 12,
                                                "manufactor_location": "https://localhost/shop/api/v2/private/manufactors/12",
                                                "manufactor_name": "APT-Ebusiness GmbH",
                                                "unit_id": 3,
                                                "unit_name": "St\u00fcck",
                                                "supplier_id": 7,
                                                "supplier_name": "APT Lieferant GmbH",
                                                "availability_id": 1,
                                                "availability_name": "Sofort lieferbar",
                                                "status": true,
                                                "durability_guarantee": {
                                                    "applicable": true,
                                                    "mode": "active",
                                                    "label_mode": "automatic",
                                                    "duration_years": null,
                                                    "producer_name": "",
                                                    "model_identifier": "APT-MUG-001",
                                                    "free_of_charge": false,
                                                    "label": {
                                                        "file": "",
                                                        "path": "",
                                                        "url": ""
                                                    },
                                                    "statement": {
                                                        "file": "",
                                                        "path": "",
                                                        "url": ""
                                                    },
                                                    "bundle_mode": "none",
                                                    "bundle_hint": ""
                                                },
                                                "master_data": {
                                                    "product_id": 101,
                                                    "product_type_id": 0,
                                                    "product_type_name": "Versandprodukt",
                                                    "status": true,
                                                    "created_date": "2025-01-12",
                                                    "public_link": "https://localhost/shop/produkte/apt-coffee-mug",
                                                    "name": "APT Coffee Mug",
                                                    "sub_name": "Keramikbecher",
                                                    "name2": "APT Mug",
                                                    "description_short": "Keramikbecher 300ml",
                                                    "description": "Keramik-Kaffeebecher mit APT-Logo",
                                                    "description2": "Sp\u00fclmaschinenfest und mikrowellengeeignet",
                                                    "internal_note": "Beispielnotiz aus der Backend-Stammdatenmaske",
                                                    "manufacturer": {
                                                        "id": 12,
                                                        "name": "APT-Ebusiness GmbH",
                                                        "location": "https://localhost/shop/api/v2/private/manufactors/12"
                                                    },
                                                    "supplier": {
                                                        "id": 7,
                                                        "name": "APT Lieferant GmbH",
                                                        "location": "https://localhost/shop/api/v2/private/suppliers/7"
                                                    },
                                                    "unit": {
                                                        "id": 3,
                                                        "name": "St\u00fcck"
                                                    },
                                                    "tax": {
                                                        "id": 1,
                                                        "rate": 19,
                                                        "differential_taxation": false
                                                    },
                                                    "availability": {
                                                        "id": 1,
                                                        "name": "Sofort lieferbar"
                                                    },
                                                    "facebook_open_graph": {
                                                        "image": {
                                                            "file": "fbog_m1_apt-coffee-mug.jpg",
                                                            "path": "images/content/fbog_m1_apt-coffee-mug.jpg",
                                                            "url": "https://localhost/shop/images/content/fbog_m1_apt-coffee-mug.jpg"
                                                        }
                                                    },
                                                    "contained_in_bundles": [
                                                        {
                                                            "bundle_id": 17,
                                                            "product_id": 333,
                                                            "product_location": "https://localhost/shop/api/v2/private/products/333",
                                                            "product_name": "APT Starter Bundle",
                                                            "product_status": true,
                                                            "variation_id": 0,
                                                            "quantity": 1,
                                                            "dynamic_variation": true,
                                                            "selectable_variation_ids": []
                                                        }
                                                    ]
                                                },
                                                "images": [
                                                    {
                                                        "image_id": 44,
                                                        "media_type": "image",
                                                        "title": "APT Coffee Mug Vorderansicht",
                                                        "sort_order": 10,
                                                        "show_in_shop": true,
                                                        "is_external": false,
                                                        "is_poster": false,
                                                        "tradebyte_type": "",
                                                        "original": {
                                                            "file": "apt-coffee-mug.jpg",
                                                            "path": "images/artikel/apt-coffee-mug.jpg",
                                                            "url": "https://localhost/shop/images/artikel/apt-coffee-mug.jpg",
                                                            "width": 1200,
                                                            "height": 1200
                                                        },
                                                        "thumbnails": {
                                                            "thumb1": {
                                                                "file": "apt-coffee-mug_thumb_1.jpg",
                                                                "path": "images/artikel/thumbs/apt-coffee-mug_thumb_1.jpg",
                                                                "url": "https://localhost/shop/images/artikel/thumbs/apt-coffee-mug_thumb_1.jpg",
                                                                "width": 100,
                                                                "height": 100
                                                            },
                                                            "thumb2": {
                                                                "file": "apt-coffee-mug_thumb_2.jpg",
                                                                "path": "images/artikel/thumbs/apt-coffee-mug_thumb_2.jpg",
                                                                "url": "https://localhost/shop/images/artikel/thumbs/apt-coffee-mug_thumb_2.jpg",
                                                                "width": 250,
                                                                "height": 250
                                                            },
                                                            "thumb3": {
                                                                "file": "apt-coffee-mug_thumb_3.jpg",
                                                                "path": "images/artikel/thumbs/apt-coffee-mug_thumb_3.jpg",
                                                                "url": "https://localhost/shop/images/artikel/thumbs/apt-coffee-mug_thumb_3.jpg",
                                                                "width": 500,
                                                                "height": 500
                                                            },
                                                            "thumb4": {
                                                                "file": "apt-coffee-mug_thumb_4.jpg",
                                                                "path": "images/artikel/thumbs/apt-coffee-mug_thumb_4.jpg",
                                                                "url": "https://localhost/shop/images/artikel/thumbs/apt-coffee-mug_thumb_4.jpg",
                                                                "width": 70,
                                                                "height": 70
                                                            }
                                                        },
                                                        "assigned_variations": []
                                                    }
                                                ],
                                                "categories": [
                                                    {
                                                        "category_id": 12,
                                                        "category_name": "Tassen",
                                                        "category_location": "https://localhost/shop/api/v2/private/categories/12",
                                                        "path": "Merchandise > Tassen",
                                                        "is_main_category": true,
                                                        "sort_order": 10,
                                                        "assignment_scope": "product",
                                                        "variation_ids": []
                                                    }
                                                ],
                                                "more_info": {
                                                    "general": {
                                                        "created_date": "2025-01-12",
                                                        "condition_id": 1,
                                                        "condition_name": "Neu",
                                                        "unit_id": 3,
                                                        "unit_name": "St\u00fcck",
                                                        "min_order_quantity": 1,
                                                        "max_order_quantity": 0,
                                                        "standalone_checkout_product": false,
                                                        "frontend_packaging_unit": 1
                                                    },
                                                    "placements": {
                                                        "homepage": false,
                                                        "offer": false,
                                                        "best_price": false
                                                    },
                                                    "shipping": {
                                                        "free_shipping": false,
                                                        "free_shipping_order": false,
                                                        "shipping_group_id": 0,
                                                        "shipping_group_location": "https://localhost/shop/api/v2/private/shippinggroups/1",
                                                        "shipping_group_name": ""
                                                    },
                                                    "exclusions": {
                                                        "discount_vouchers": false,
                                                        "search": false,
                                                        "cross_selling": false,
                                                        "percentage_payment_costs": false
                                                    },
                                                    "free_product": {
                                                        "only_free_product": false
                                                    },
                                                    "search_subscription_purchase": {
                                                        "keywords": "kaffee, becher, mug",
                                                        "subscription_plan_id": 0,
                                                        "subscription_discount_percent": 0,
                                                        "purchase_enabled": false,
                                                        "tradebyte_channels": []
                                                    },
                                                    "cross_selling": [
                                                        {
                                                            "product_id": 202,
                                                            "name": "APT Herren T-Shirt"
                                                        }
                                                    ],
                                                    "free_texts": [
                                                        {
                                                            "counter": 1,
                                                            "lang_id": 1,
                                                            "variable_suffix": "PFLEGE",
                                                            "template_name": "FREITEXTFELD1PFLEGE",
                                                            "content": "Sp\u00fclmaschinengeeignet."
                                                        }
                                                    ],
                                                    "bulletpoints": [
                                                        {
                                                            "bulletpoint_id": 1,
                                                            "name": "Robuste Keramik",
                                                            "sort_order": 10
                                                        }
                                                    ],
                                                    "faqs": [
                                                        {
                                                            "faq_id": 1,
                                                            "question": "Ist der Becher sp\u00fclmaschinenfest?",
                                                            "answer": "Ja, der Becher ist sp\u00fclmaschinenfest."
                                                        }
                                                    ]
                                                },
                                                "attributes": [
                                                    {
                                                        "attribute_id": 3,
                                                        "attribute_name": "Material",
                                                        "show_in_filter": true,
                                                        "show_on_detail": true,
                                                        "private": false,
                                                        "schema_org": false,
                                                        "presentation_type_id": 0,
                                                        "value_id": 22,
                                                        "value_name": "Keramik",
                                                        "assignment_scope": "product",
                                                        "variation_ids": []
                                                    }
                                                ],
                                                "nutrition": {
                                                    "module_active": true,
                                                    "variations": [
                                                        {
                                                            "variation_id": 501,
                                                            "sku": "APT-MUG-001",
                                                            "variation_name": "APT Becher",
                                                            "general": {
                                                                "traffic_name": "",
                                                                "net_quantity": "",
                                                                "net_quantity_unit": "",
                                                                "origin_country": "",
                                                                "portion": "",
                                                                "portion_unit": "",
                                                                "portion_note": "",
                                                                "nutrition_note": ""
                                                            },
                                                            "flags": {
                                                                "contains_sweetener": false,
                                                                "contains_sugar": false,
                                                                "packed_in_protective_atmosphere": false,
                                                                "contains_aspartame": false
                                                            },
                                                            "texts": {
                                                                "ingredients": "",
                                                                "allergens": "",
                                                                "consumption_recommendation": "",
                                                                "storage": "",
                                                                "warnings": ""
                                                            },
                                                            "additional": {
                                                                "alcohol_content": "",
                                                                "laxative_warning": "",
                                                                "liquorice_warning": "",
                                                                "nutrition_file": {
                                                                    "file": "",
                                                                    "path": "",
                                                                    "url": ""
                                                                }
                                                            },
                                                            "assigned_data": {
                                                                "calorific_value": {
                                                                    "value": "850 kJ / 203 kcal",
                                                                    "portion_value": "170 kJ / 41 kcal"
                                                                },
                                                                "ingredients": [
                                                                    {
                                                                        "ingredient_id": 12,
                                                                        "assignment_id": 77,
                                                                        "name": "Haferflocken",
                                                                        "allergen": true,
                                                                        "sort_order": 10
                                                                    }
                                                                ],
                                                                "nutrients": [
                                                                    {
                                                                        "nutrition_id": 1,
                                                                        "type_id": 1,
                                                                        "type_name": "Naehrwert",
                                                                        "name": "Fett",
                                                                        "unit": "g",
                                                                        "allergen": false,
                                                                        "caffeine": false,
                                                                        "always_show": false,
                                                                        "sort_order": 20,
                                                                        "note": "",
                                                                        "value_comparator": "",
                                                                        "value": 3.5,
                                                                        "portion_value_comparator": "",
                                                                        "portion_value": 0.7,
                                                                        "nrv": 0
                                                                    }
                                                                ],
                                                                "additional_nutrients": [],
                                                                "amino_acids": [],
                                                                "vitamins": [],
                                                                "minerals": []
                                                            },
                                                            "tags": [
                                                                {
                                                                    "name": "Zutaten",
                                                                    "value": "Haferflocken*. (*Allergen)"
                                                                }
                                                            ]
                                                        }
                                                    ]
                                                },
                                                "bundle": {
                                                    "is_bundle": false,
                                                    "has_selectable_bundle_items": false,
                                                    "items": []
                                                },
                                                "license_keys": {
                                                    "is_virtual_product": false,
                                                    "keys": []
                                                },
                                                "order_fields": [
                                                    {
                                                        "order_field_id": 5,
                                                        "name": "Gravurtext",
                                                        "type_id": 1,
                                                        "type_name": "Textfeld",
                                                        "required": false,
                                                        "group_id": 0,
                                                        "sort_order": 10
                                                    }
                                                ],
                                                "downloads": [
                                                    {
                                                        "download_id": 3,
                                                        "name": "Pflegehinweise",
                                                        "type_id": 5,
                                                        "type_name": "Gebrauchsanweisung",
                                                        "file": "pflegehinweise.pdf",
                                                        "external_url": "",
                                                        "url": "https://localhost/shop/downloads/files/pflegehinweise.pdf",
                                                        "icon": {
                                                            "file": "pdf.png",
                                                            "path": "downloads/images/pdf.png",
                                                            "url": "https://localhost/shop/downloads/images/pdf.png"
                                                        }
                                                    }
                                                ],
                                                "visibility": {
                                                    "visible_for_custgroups": [
                                                        {
                                                            "custgroup_id": 1,
                                                            "custgroup_name": "Endkunden"
                                                        }
                                                    ]
                                                },
                                                "payment": {
                                                    "excluded_payment_types": [
                                                        {
                                                            "payment_type_id": 4,
                                                            "payment_type_name": "Nachnahme",
                                                            "payment_type_location": "https://localhost/shop/api/v2/private/paymenttypes/1"
                                                        }
                                                    ]
                                                },
                                                "shipping_methods": {
                                                    "assigned_shipping_methods": [
                                                        {
                                                            "shipping_method_id": 2,
                                                            "shipping_method_name": "DHL Paket",
                                                            "shipping_method_location": "https://localhost/shop/api/v2/private/shippingtypes/1"
                                                        }
                                                    ]
                                                },
                                                "shipping_countries": {
                                                    "excluded_countries": [
                                                        {
                                                            "country_id": 44,
                                                            "country_name": "Schweiz",
                                                            "country_location": "https://localhost/shop/api/v2/private/countries/39"
                                                        }
                                                    ]
                                                },
                                                "variation_id": 501,
                                                "sku": "APT-MUG-001",
                                                "special": {
                                                    "external_reference": "SAP-MUG-001",
                                                    "source": "SAP"
                                                },
                                                "order_nr": "MUG-001",
                                                "ean": "4000000005678",
                                                "isbn": null,
                                                "asin": null,
                                                "upc": null,
                                                "weight": 0.3,
                                                "shippingweight": 0.35,
                                                "stock": {
                                                    "stock_real": 1,
                                                    "stock_available": 1,
                                                    "stock_reserved": 0,
                                                    "depots": [
                                                        {
                                                            "depot_id": 1,
                                                            "stock": 1,
                                                            "stock_details": [
                                                                {
                                                                    "storage_location_id": 106,
                                                                    "stock": 1,
                                                                    "regal": 0,
                                                                    "fach": 0,
                                                                    "boden": 0,
                                                                    "lagerort": ""
                                                                }
                                                            ],
                                                            "depot_name": "Standardlager"
                                                        },
                                                        {
                                                            "depot_id": 2,
                                                            "stock": 0,
                                                            "stock_details": [],
                                                            "depot_name": "Nebenlager"
                                                        }
                                                    ]
                                                },
                                                "price_data": {
                                                    "pricegroups": [
                                                        {
                                                            "pricegroup_id": 0,
                                                            "pricegroup_name": "Standardpreis",
                                                            "prices": [
                                                                {
                                                                    "price_unit": 1,
                                                                    "price": {
                                                                        "amount": 18.99,
                                                                        "include_tax": true
                                                                    },
                                                                    "price_special": {
                                                                        "amount": 16.99,
                                                                        "include_tax": true
                                                                    },
                                                                    "price_special_limited_time": {
                                                                        "amount": 10.99,
                                                                        "include_tax": false,
                                                                        "start": "2026-01-01 00:00:00",
                                                                        "end": "2026-01-31 23:59:59"
                                                                    }
                                                                },
                                                                {
                                                                    "price_unit": 3,
                                                                    "price": {
                                                                        "amount": 17.99,
                                                                        "include_tax": true
                                                                    },
                                                                    "price_special": {
                                                                        "amount": 15.99,
                                                                        "include_tax": true
                                                                    },
                                                                    "price_special_limited_time": {
                                                                        "amount": 8.99,
                                                                        "include_tax": false,
                                                                        "start": "2026-01-01 00:00:00",
                                                                        "end": "2026-01-31 23:59:59"
                                                                    }
                                                                }
                                                            ]
                                                        }
                                                    ],
                                                    "repurchase_price": {
                                                        "amount": 8,
                                                        "include_tax": false
                                                    }
                                                }
                                            }
                                        ]
                                    },
                                    "Detailform": {
                                        "summary": "Produkt mit Varianten",
                                        "value": [
                                            {
                                                "id": 202,
                                                "location": "https://localhost/shop/api/v2/private/products/202",
                                                "name": "APT Herren T-Shirt",
                                                "description": "Hochwertiges Baumwoll-T-Shirt in verschiedenen Farben und Gr\u00f6\u00dfen.",
                                                "description2": "Klassischer Schnitt, 100% Baumwolle, fair produziert.",
                                                "description_short": "APT T-Shirt",
                                                "seo": {
                                                    "title": "APT Herren T-Shirt online kaufen",
                                                    "description": "APT Herren T-Shirt aus nachhaltiger Baumwolle direkt online kaufen.",
                                                    "keywords": "T-Shirt, Baumwolle, APT"
                                                },
                                                "link": "https://localhost/shop/produkte/apt-tshirt",
                                                "tax_id": 1,
                                                "tax_rate": 19,
                                                "differenzsteuer": false,
                                                "datum": "2025-02-20",
                                                "manufactor_id": 12,
                                                "manufactor_location": "https://localhost/shop/api/v2/private/manufactors/12",
                                                "manufactor_name": "APT Textil GmbH",
                                                "unit_id": 3,
                                                "unit_name": "St\u00fcck",
                                                "supplier_id": 8,
                                                "supplier_name": "FashionSupplier AG",
                                                "availability_id": 1,
                                                "availability_name": "Auf Lager",
                                                "status": true,
                                                "durability_guarantee": {
                                                    "applicable": true,
                                                    "mode": "active",
                                                    "label_mode": "automatic",
                                                    "duration_years": 5,
                                                    "producer_name": "APT Textil GmbH",
                                                    "model_identifier": "",
                                                    "free_of_charge": true,
                                                    "label": {
                                                        "file": "",
                                                        "path": "",
                                                        "url": ""
                                                    },
                                                    "statement": {
                                                        "file": "garan-erklaerung-a1b2c3.pdf",
                                                        "path": "downloads/files/garan/garan-erklaerung-a1b2c3.pdf",
                                                        "url": "https://localhost/shop/downloads/files/garan/garan-erklaerung-a1b2c3.pdf"
                                                    },
                                                    "bundle_mode": "none",
                                                    "bundle_hint": ""
                                                },
                                                "sizegroup_id": 5,
                                                "sizegroup_name": "Gr\u00f6\u00dfen",
                                                "colorgroup_id": 2,
                                                "colorgroup_name": "Farben",
                                                "variations": [
                                                    {
                                                        "variation_id": 601,
                                                        "sku": "APT-SHIRT-BLACK-L",
                                                        "durability_guarantee": {
                                                            "mode": "override",
                                                            "label_mode": "automatic",
                                                            "duration_years": 3,
                                                            "producer_name": "",
                                                            "model_identifier": "APT-SHIRT-BLACK-L",
                                                            "free_of_charge": false,
                                                            "label": {
                                                                "file": "",
                                                                "path": "",
                                                                "url": ""
                                                            },
                                                            "statement": {
                                                                "file": "",
                                                                "path": "",
                                                                "url": ""
                                                            }
                                                        },
                                                        "special": {
                                                            "external_reference": "SAP-SHIRT-BLACK-L",
                                                            "source": "SAP"
                                                        },
                                                        "order_nr": "SHIRT-BLACK-L",
                                                        "ean": "4000000010011",
                                                        "isbn": null,
                                                        "asin": null,
                                                        "upc": null,
                                                        "weight": 0.25,
                                                        "shippingweight": 0.3,
                                                        "reserved": 5,
                                                        "availability_id": 1,
                                                        "availability_name": "Sofort lieferbar",
                                                        "stock": [
                                                            {
                                                                "depot_id": 1,
                                                                "depot_name": "Hauptlager",
                                                                "stock": 80
                                                            },
                                                            {
                                                                "depot_id": 2,
                                                                "depot_name": "Lager S\u00fcd",
                                                                "stock": 40
                                                            }
                                                        ],
                                                        "price_data": {
                                                            "pricegroups": [
                                                                {
                                                                    "pricegroup_id": 0,
                                                                    "pricegroup_name": "Standardpreis",
                                                                    "prices": [
                                                                        {
                                                                            "price_unit": 1,
                                                                            "price": {
                                                                                "amount": 18.99,
                                                                                "include_tax": true
                                                                            },
                                                                            "price_special": {
                                                                                "amount": 16.99,
                                                                                "include_tax": true
                                                                            },
                                                                            "price_special_limited_time": {
                                                                                "amount": 10.99,
                                                                                "include_tax": false,
                                                                                "start": "2026-01-01 00:00:00",
                                                                                "end": "2026-01-31 23:59:59"
                                                                            }
                                                                        },
                                                                        {
                                                                            "price_unit": 10,
                                                                            "price": {
                                                                                "amount": 17.99,
                                                                                "include_tax": true
                                                                            },
                                                                            "price_special": {
                                                                                "amount": 15.99,
                                                                                "include_tax": true
                                                                            },
                                                                            "price_special_limited_time": {
                                                                                "amount": 8.99,
                                                                                "include_tax": false,
                                                                                "start": "2026-01-01 00:00:00",
                                                                                "end": "2026-01-31 23:59:59"
                                                                            }
                                                                        }
                                                                    ]
                                                                }
                                                            ],
                                                            "repurchase_price": {
                                                                "amount": 8,
                                                                "include_tax": false
                                                            }
                                                        }
                                                    },
                                                    {
                                                        "variation_id": 602,
                                                        "artikel_nr": "APT-SHIRT-WHITE-M",
                                                        "order_nr": "SHIRT-WHITE-M",
                                                        "ean": "4000000010012",
                                                        "availability_id": 1,
                                                        "availability_name": "Sofort lieferbar",
                                                        "stock": [
                                                            {
                                                                "depot_id": 1,
                                                                "depot_name": "Hauptlager",
                                                                "stock": 50
                                                            }
                                                        ]
                                                    }
                                                ]
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Produktes abrufen.",
                "description": "Gibt Preis-, Bestands- und interne Verwaltungsdaten zur\u00fcck.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetProductsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Produkt-ID"
                    },
                    {
                        "name": "include",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Kommaseparierte Liste zusaetzlicher Datenbereiche, z.B. master_data,images,categories,more_info,attributes,order_fields,downloads,visibility,payment,shipping_methods,shipping_countries"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "products.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "products.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "products"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "product_id": {
                                            "type": "integer"
                                        },
                                        "product_location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "updated": {
                                            "type": "boolean"
                                        },
                                        "variation_id": {
                                            "type": "integer",
                                            "description": "Nur vorhanden, wenn genau eine Variante aktualisiert wurde."
                                        },
                                        "sku": {
                                            "type": "string",
                                            "description": "Nur vorhanden, wenn genau eine Variante aktualisiert wurde."
                                        },
                                        "variations": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "variation_id": {
                                                        "type": "integer"
                                                    },
                                                    "sku": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "success",
                                    "data": {
                                        "id": 1234,
                                        "location": "https://shop.example/api/v2/private/products/1234",
                                        "product_id": 1234,
                                        "product_location": "https://shop.example/api/v2/private/products/1234",
                                        "updated": true,
                                        "variations": [
                                            {
                                                "variation_id": 7001,
                                                "sku": "APT-BLACK-M"
                                            },
                                            {
                                                "variation_id": 7002,
                                                "sku": "APT-BLACK-L"
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Produkt und vorhandene Varianten aktualisieren.",
                "description": "Aktualisiert alle beim Produkt-POST unterstuetzten Stammdaten sowie vorhandene Varianten, Preise, Variantenauswahl und Depotbestaende. Varianten werden ueber variation_id oder ihre bestehende SKU ausgewaehlt; nicht uebergebene Daten bleiben unveraendert.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutProductsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Produkt-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Partielles Update eines Produkts und vorhandener Varianten. Nicht uebergebene Felder bleiben unveraendert. Bilder, Kategorien, Ausschluesse und andere Unterressourcen werden ueber ihre eigenen Endpoints gepflegt.",
                                "properties": {
                                    "master_data": {
                                        "type": "object",
                                        "description": "Optionaler Container fuer Produktstammdaten wie von GET include=master_data geliefert."
                                    },
                                    "name": {
                                        "type": "string"
                                    },
                                    "sub_name": {
                                        "type": "string"
                                    },
                                    "name2": {
                                        "type": "string"
                                    },
                                    "description": {
                                        "type": "string"
                                    },
                                    "description2": {
                                        "type": "string"
                                    },
                                    "description_short": {
                                        "type": "string"
                                    },
                                    "internal_note": {
                                        "type": "string"
                                    },
                                    "status": {
                                        "type": "boolean"
                                    },
                                    "tax_id": {
                                        "type": "integer"
                                    },
                                    "differenzsteuer": {
                                        "type": "boolean"
                                    },
                                    "manufactor_id": {
                                        "type": "integer"
                                    },
                                    "supplier_id": {
                                        "type": "integer"
                                    },
                                    "unit_id": {
                                        "type": "integer"
                                    },
                                    "availability_id": {
                                        "type": "integer"
                                    },
                                    "product_type_id": {
                                        "type": "integer"
                                    },
                                    "seo": {
                                        "type": "object",
                                        "properties": {
                                            "title": {
                                                "type": "string"
                                            },
                                            "description": {
                                                "type": "string"
                                            },
                                            "keywords": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "stock_price_settings": {
                                        "type": "object",
                                        "description": "Steuer-, Tracking-, Verfuegbarkeits- und Variantenanzeige-Einstellungen."
                                    },
                                    "more_info": {
                                        "type": "object",
                                        "description": "Allgemeine Angaben, Platzierungen, Versand- und Ausschlusseinstellungen wie im Produkt-GET."
                                    },
                                    "durability_guarantee": {
                                        "type": "object",
                                        "description": "Konfiguration der gewerblichen Haltbarkeitsgarantie (EU-GARAN). Leere Produktwerte erben die Hersteller-Standards. Fuer label/statement werden beim Upload file und Base64-stream gesendet; delete=true entfernt die Datei.",
                                        "properties": {
                                            "mode": {
                                                "type": "string",
                                                "enum": [
                                                    "none",
                                                    "active"
                                                ]
                                            },
                                            "label_mode": {
                                                "type": "string",
                                                "enum": [
                                                    "automatic",
                                                    "upload"
                                                ]
                                            },
                                            "duration_years": {
                                                "type": "number",
                                                "nullable": true,
                                                "minimum": 2.5,
                                                "maximum": 99,
                                                "multipleOf": 0.5
                                            },
                                            "producer_name": {
                                                "type": "string"
                                            },
                                            "model_identifier": {
                                                "type": "string"
                                            },
                                            "free_of_charge": {
                                                "type": "boolean"
                                            },
                                            "label": {
                                                "type": "object",
                                                "properties": {
                                                    "file": {
                                                        "type": "string"
                                                    },
                                                    "stream": {
                                                        "type": "string",
                                                        "format": "byte"
                                                    },
                                                    "delete": {
                                                        "type": "boolean"
                                                    }
                                                }
                                            },
                                            "statement": {
                                                "type": "object",
                                                "properties": {
                                                    "file": {
                                                        "type": "string"
                                                    },
                                                    "stream": {
                                                        "type": "string",
                                                        "format": "byte"
                                                    },
                                                    "delete": {
                                                        "type": "boolean"
                                                    }
                                                }
                                            },
                                            "bundle_mode": {
                                                "type": "string",
                                                "enum": [
                                                    "none",
                                                    "whole_bundle",
                                                    "components"
                                                ]
                                            },
                                            "bundle_hint": {
                                                "type": "string"
                                            }
                                        }
                                    },
                                    "variation_id": {
                                        "type": "integer",
                                        "description": "ID der Standardvariante bei einem Update ohne variations-Array."
                                    },
                                    "sku": {
                                        "type": "string",
                                        "description": "Bestehende SKU zur Auswahl der Variante. Aendert die SKU nicht."
                                    },
                                    "new_sku": {
                                        "type": "string",
                                        "description": "Neue eindeutige SKU fuer die ausgewaehlte Variante."
                                    },
                                    "enabled": {
                                        "type": "boolean"
                                    },
                                    "order_nr": {
                                        "type": "string"
                                    },
                                    "ean": {
                                        "type": "string"
                                    },
                                    "isbn": {
                                        "type": "string"
                                    },
                                    "asin": {
                                        "type": "string"
                                    },
                                    "upc": {
                                        "type": "string"
                                    },
                                    "weight": {
                                        "type": "number"
                                    },
                                    "shippingweight": {
                                        "type": "number"
                                    },
                                    "buyable_without_stock": {
                                        "type": "boolean"
                                    },
                                    "availability_auto": {
                                        "type": "boolean"
                                    },
                                    "supplier_packaging_unit": {
                                        "type": "object",
                                        "properties": {
                                            "enabled": {
                                                "type": "boolean"
                                            },
                                            "quantity": {
                                                "type": "integer"
                                            }
                                        }
                                    },
                                    "variation_values": {
                                        "type": "array",
                                        "description": "Ersetzt die Merkmalsauswahl der Variante.",
                                        "items": {
                                            "type": "object",
                                            "required": [
                                                "item_id"
                                            ],
                                            "properties": {
                                                "item_id": {
                                                    "type": "integer"
                                                }
                                            }
                                        }
                                    },
                                    "stock": {
                                        "type": "object",
                                        "description": "Aktualisiert nur angegebene Depots; andere Depots bleiben unveraendert. Anschliessend wird der Gesamtbestand als Summe aller nicht ausgeschlossenen Depots synchronisiert."
                                    },
                                    "price_data": {
                                        "type": "object",
                                        "description": "Aktualisiert oder ergaenzt angegebene Preisgruppen und Staffeln; andere Preise bleiben unveraendert."
                                    },
                                    "special": {
                                        "type": "object",
                                        "additionalProperties": true,
                                        "description": "Freie Zusatzdaten der Standardvariante. Uebergebene Schluessel werden analog zu Orders.special angelegt oder aktualisiert; andere bleiben erhalten."
                                    },
                                    "variations": {
                                        "type": "array",
                                        "description": "Vorhandene Varianten, die aktualisiert werden sollen.",
                                        "items": {
                                            "type": "object",
                                            "properties": {
                                                "variation_id": {
                                                    "type": "integer"
                                                },
                                                "sku": {
                                                    "type": "string",
                                                    "description": "Alternative Auswahl ueber die bestehende SKU."
                                                },
                                                "new_sku": {
                                                    "type": "string"
                                                },
                                                "enabled": {
                                                    "type": "boolean"
                                                },
                                                "weight": {
                                                    "type": "number"
                                                },
                                                "shippingweight": {
                                                    "type": "number"
                                                },
                                                "variation_settings": {
                                                    "type": "object"
                                                },
                                                "special": {
                                                    "type": "object",
                                                    "additionalProperties": true,
                                                    "description": "Freie Zusatzdaten dieser Variante. Uebergebene Schluessel werden angelegt oder aktualisiert."
                                                },
                                                "durability_guarantee": {
                                                    "type": "object",
                                                    "description": "Variantenbezogene GARAN-Uebersteuerung. Nur fuer Produkte mit echter Variantengruppe relevant.",
                                                    "properties": {
                                                        "mode": {
                                                            "type": "string",
                                                            "enum": [
                                                                "inherit_product",
                                                                "none",
                                                                "override"
                                                            ]
                                                        },
                                                        "label_mode": {
                                                            "type": "string",
                                                            "enum": [
                                                                "automatic",
                                                                "upload"
                                                            ]
                                                        },
                                                        "duration_years": {
                                                            "type": "number",
                                                            "nullable": true,
                                                            "minimum": 2.5,
                                                            "maximum": 99,
                                                            "multipleOf": 0.5
                                                        },
                                                        "producer_name": {
                                                            "type": "string"
                                                        },
                                                        "model_identifier": {
                                                            "type": "string"
                                                        },
                                                        "free_of_charge": {
                                                            "type": "boolean"
                                                        },
                                                        "label": {
                                                            "type": "object",
                                                            "properties": {
                                                                "file": {
                                                                    "type": "string"
                                                                },
                                                                "stream": {
                                                                    "type": "string",
                                                                    "format": "byte"
                                                                },
                                                                "delete": {
                                                                    "type": "boolean"
                                                                }
                                                            }
                                                        },
                                                        "statement": {
                                                            "type": "object",
                                                            "properties": {
                                                                "file": {
                                                                    "type": "string"
                                                                },
                                                                "stream": {
                                                                    "type": "string",
                                                                    "format": "byte"
                                                                },
                                                                "delete": {
                                                                    "type": "boolean"
                                                                }
                                                            }
                                                        }
                                                    }
                                                },
                                                "supplier_packaging_unit": {
                                                    "type": "object"
                                                },
                                                "variation_values": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "required": [
                                                            "item_id"
                                                        ],
                                                        "properties": {
                                                            "item_id": {
                                                                "type": "integer"
                                                            }
                                                        }
                                                    }
                                                },
                                                "stock": {
                                                    "type": "object"
                                                },
                                                "price_data": {
                                                    "type": "object"
                                                }
                                            },
                                            "anyOf": [
                                                {
                                                    "required": [
                                                        "variation_id"
                                                    ]
                                                },
                                                {
                                                    "required": [
                                                        "sku"
                                                    ]
                                                }
                                            ]
                                        }
                                    }
                                }
                            },
                            "examples": {
                                "Vollstaendiges Standardprodukt-Update": {
                                    "summary": "Stammdaten, Standardvariante, Preis und Depotbestand aktualisieren",
                                    "value": {
                                        "name": "APT Classic T-Shirt 2026",
                                        "description": "Aktualisierte Produktbeschreibung.",
                                        "description_short": "Classic T-Shirt",
                                        "status": true,
                                        "tax_id": 1,
                                        "differenzsteuer": false,
                                        "supplier_id": 29,
                                        "durability_guarantee": {
                                            "mode": "active",
                                            "label_mode": "automatic",
                                            "duration_years": 5,
                                            "model_identifier": "APT-SHIRT-2026",
                                            "free_of_charge": true
                                        },
                                        "unit_id": 1,
                                        "seo": {
                                            "title": "APT Classic T-Shirt",
                                            "description": "Jetzt online kaufen",
                                            "keywords": "T-Shirt, APT"
                                        },
                                        "more_info": {
                                            "general": {
                                                "condition_id": 1,
                                                "min_order_quantity": 1,
                                                "max_order_quantity": 5
                                            }
                                        },
                                        "variation_id": 5678,
                                        "new_sku": "APT-SHIRT-2026",
                                        "enabled": true,
                                        "weight": 250,
                                        "shippingweight": 300,
                                        "availability_id": 11,
                                        "availability_auto": false,
                                        "buyable_without_stock": false,
                                        "supplier_packaging_unit": {
                                            "enabled": true,
                                            "quantity": 1
                                        },
                                        "special": {
                                            "external_reference": "SAP-4711-UPDATED",
                                            "import_timestamp": "2026-09-04T12:00:00+02:00"
                                        },
                                        "stock": {
                                            "depots": [
                                                {
                                                    "depot_id": 1,
                                                    "stock": 12,
                                                    "storage_location": "A-01"
                                                }
                                            ]
                                        },
                                        "price_data": {
                                            "pricegroups": [
                                                {
                                                    "pricegroup_id": 0,
                                                    "prices": [
                                                        {
                                                            "price_unit": 1,
                                                            "base_price_unit": 1,
                                                            "price": {
                                                                "amount": 29.95
                                                            },
                                                            "price_history": {
                                                                "amount": 34.95
                                                            },
                                                            "price_special": {
                                                                "amount": 27.95
                                                            }
                                                        }
                                                    ]
                                                }
                                            ],
                                            "repurchase_price": {
                                                "amount": 12
                                            },
                                            "purchase_price": {
                                                "amount": 10
                                            }
                                        }
                                    }
                                },
                                "Variantenprodukt-Update": {
                                    "summary": "Mehrere vorhandene Varianten in einem Aufruf aktualisieren",
                                    "value": {
                                        "name": "APT Variantenprodukt",
                                        "variations": [
                                            {
                                                "variation_id": 7001,
                                                "new_sku": "APT-BLACK-M",
                                                "enabled": true,
                                                "durability_guarantee": {
                                                    "mode": "override",
                                                    "label_mode": "automatic",
                                                    "duration_years": 3,
                                                    "model_identifier": "APT-BLACK-M"
                                                },
                                                "special": {
                                                    "external_reference": "SAP-BLACK-M"
                                                },
                                                "variation_values": [
                                                    {
                                                        "item_id": 101
                                                    },
                                                    {
                                                        "item_id": 205
                                                    }
                                                ],
                                                "stock": {
                                                    "depots": [
                                                        {
                                                            "depot_id": 1,
                                                            "stock": 4
                                                        }
                                                    ]
                                                },
                                                "price_data": {
                                                    "pricegroups": [
                                                        {
                                                            "pricegroup_id": 0,
                                                            "prices": [
                                                                {
                                                                    "price_unit": 1,
                                                                    "price": {
                                                                        "amount": 39.95
                                                                    }
                                                                }
                                                            ]
                                                        }
                                                    ]
                                                }
                                            },
                                            {
                                                "sku": "APT-BLACK-L-ALT",
                                                "new_sku": "APT-BLACK-L",
                                                "enabled": true,
                                                "special": {
                                                    "external_reference": "SAP-BLACK-L"
                                                },
                                                "stock": {
                                                    "depots": [
                                                        {
                                                            "depot_id": 1,
                                                            "stock": 2
                                                        }
                                                    ]
                                                }
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "products.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "products.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/products/stock": {
            "get": {
                "tags": [
                    "products"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Eindeutige Produkt-ID",
                                            "example": 202
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API-Link zum Produkt",
                                            "example": "https://localhost/shop/api/v2/private/products/202"
                                        },
                                        "variation_id": {
                                            "type": "integer",
                                            "description": "Varianten-ID"
                                        },
                                        "sku": {
                                            "type": "string",
                                            "description": "Artikelnummer der Variante"
                                        },
                                        "stock_real": {
                                            "type": "integer",
                                            "description": "Der reale Gesamtbestand"
                                        },
                                        "stock_available": {
                                            "type": "integer",
                                            "description": "Der kaufbare Bestand"
                                        },
                                        "stock_reserved": {
                                            "type": "integer",
                                            "description": "Der reservierte Bestand"
                                        },
                                        "depots": {
                                            "type": "array",
                                            "description": "Lagerbest\u00e4nde nach Depot",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "depot_id": {
                                                        "type": "integer",
                                                        "description": "Depot-ID"
                                                    },
                                                    "stock": {
                                                        "type": "integer",
                                                        "description": "Lagerbestand im jeweiligen Depot"
                                                    },
                                                    "stock_details": {
                                                        "type": "array",
                                                        "description": "Lagerpl\u00e4tze im Depot",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "storage_location_id": {
                                                                    "type": "integer",
                                                                    "description": "Storage-Location-ID"
                                                                },
                                                                "stock": {
                                                                    "type": "integer",
                                                                    "description": "Bestand im Lagerplatz"
                                                                },
                                                                "regal": {
                                                                    "type": "integer",
                                                                    "description": "Regalnummer"
                                                                },
                                                                "fach": {
                                                                    "type": "integer",
                                                                    "description": "Fachnummer"
                                                                },
                                                                "boden": {
                                                                    "type": "integer",
                                                                    "description": "Bodennummer"
                                                                },
                                                                "lagerort": {
                                                                    "type": "string",
                                                                    "description": "Hinweis zum Lagerplatz"
                                                                },
                                                                "mhd": {
                                                                    "type": "string",
                                                                    "format": "date",
                                                                    "description": "MHD"
                                                                },
                                                                "charge": {
                                                                    "type": "string",
                                                                    "description": "Chargennummer"
                                                                }
                                                            }
                                                        }
                                                    },
                                                    "depot_name": {
                                                        "type": "string",
                                                        "description": "Depotname"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 101,
                                    "location": "https://localhost/shop/api/v2/private/products/101",
                                    "variation_id": 501,
                                    "sku": "APT-MUG-001",
                                    "stock_real": 1,
                                    "stock_available": 1,
                                    "stock_reserved": 0,
                                    "depots": [
                                        {
                                            "depot_id": 1,
                                            "stock": 1,
                                            "stock_details": [
                                                {
                                                    "storage_location_id": 106,
                                                    "stock": 1,
                                                    "regal": 0,
                                                    "fach": 0,
                                                    "boden": 0,
                                                    "lagerort": ""
                                                }
                                            ],
                                            "depot_name": "Standardlager"
                                        },
                                        {
                                            "depot_id": 2,
                                            "stock": 0,
                                            "stock_details": [],
                                            "depot_name": "Nebenlager"
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Gibt den Bestand einer Artikelnummer zur\u00fcck",
                "description": "Gibt den Bestand und ggf weitere Bestandsdetails f\u00fcr eine Artikelnummer zur\u00fcck.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetProductsStockPrivate",
                "parameters": [
                    {
                        "name": "sku",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Die Artikelnummer"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "products.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "products.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "products"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Ein Array mit den Datens\u00e4zen die ge\u00e4ndert wurden.",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "description": "Eindeutige Produkt-ID",
                                                "example": 202
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri",
                                                "description": "API-Link zum Produkt",
                                                "example": "https://localhost/shop/api/v2/private/products/202"
                                            },
                                            "variation_id": {
                                                "type": "integer",
                                                "description": "Entweder variation oder SKU angeben."
                                            },
                                            "sku": {
                                                "type": "string",
                                                "description": "Entweder variation oder SKU angeben."
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 33,
                                        "location": "https://localhost/shop/api/v2/private/products/33",
                                        "variation_id": 100,
                                        "artikel_nr": "33"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Aktualisiert Produktbest\u00e4nde",
                "description": "Aktaulisiert mehere Produktbest\u00e4nde anhand variation_id oder SKU.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutProductsStockPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "array",
                                "description": "Ein Array der einzelnen Datens\u00e4tzen die zu \u00e4ndern sind. (max 100)",
                                "maxItems": 100,
                                "items": {
                                    "type": "object",
                                    "description": "Ein Array mit dem Identifiern und dem Bestand.",
                                    "properties": {
                                        "stock": {
                                            "type": "integer",
                                            "description": "Der neue Bestand (is_offset=false), bzw die zu \u00e4ndernde Menge (is_offset=true)"
                                        },
                                        "is_offset": {
                                            "type": "boolean",
                                            "description": "true wenn stock die zu \u00e4ndernde Menge ist (also z.B. plus 2 oder minus 3)",
                                            "default": false
                                        },
                                        "variation_id": {
                                            "type": "integer",
                                            "description": "Entweder variation oder SKU angeben."
                                        },
                                        "sku": {
                                            "type": "string",
                                            "description": "Entweder variation oder SKU angeben."
                                        },
                                        "depot_id": {
                                            "type": "integer",
                                            "description": "Wenn Lagerverwaltung aktiv ist, dann die Lager Id angeben."
                                        },
                                        "storage_location_id": {
                                            "type": "integer",
                                            "description": "Wenn Lagerverwaltung aktiv ist, dann die Lagerplatz Id angeben."
                                        }
                                    },
                                    "required": [
                                        "stock"
                                    ]
                                }
                            },
                            "example": [
                                {
                                    "sku": "33",
                                    "stock": 23,
                                    "depot_id": 1,
                                    "storage_location_id": 238
                                },
                                {
                                    "variation_id": 526,
                                    "stock": 2,
                                    "is_offset": true,
                                    "depot_id": 2,
                                    "storage_location_id": 2123
                                }
                            ]
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "products.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "products.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/products/{id}/stock": {
            "get": {
                "tags": [
                    "products"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "oneOf": [
                                        {
                                            "description": "Produkt ohne Varianten",
                                            "$ref": "#/paths/~1private~1products~1stock/get/responses/200/content/application~1json/schema"
                                        },
                                        {
                                            "description": "Produkt mit Varianten",
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "description": "Eindeutige Produkt-ID",
                                                    "example": 202
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "format": "uri",
                                                    "description": "API-Link zum Produkt",
                                                    "example": "https://localhost/shop/api/v2/private/products/202"
                                                },
                                                "variations": {
                                                    "type": "array",
                                                    "description": "Best\u00e4nde aller Varianten",
                                                    "items": {
                                                        "$ref": "#/paths/~1private~1products~1stock/get/responses/200/content/application~1json/schema"
                                                    }
                                                }
                                            }
                                        }
                                    ]
                                },
                                "examples": {
                                    "OhneVarianten": {
                                        "summary": "Ausgabe Best\u00e4nde eines Produkts ohne Varianten",
                                        "value": {
                                            "id": 46,
                                            "location": "https://localhost/shop/api/v2/private/products/46",
                                            "variation_id": 131,
                                            "sku": "46-2",
                                            "stock_real": 1,
                                            "stock_available": 1,
                                            "stock_reserved": 0,
                                            "depots": [
                                                {
                                                    "depot_id": 1,
                                                    "stock": 1,
                                                    "stock_details": [
                                                        {
                                                            "storage_location_id": 105,
                                                            "stock": 1,
                                                            "regal": 0,
                                                            "fach": 0,
                                                            "boden": 0,
                                                            "lagerort": ""
                                                        }
                                                    ],
                                                    "depot_name": "Standardlager"
                                                },
                                                {
                                                    "depot_id": 2,
                                                    "stock": 0,
                                                    "stock_details": [],
                                                    "depot_name": "Nebenlager"
                                                }
                                            ]
                                        }
                                    },
                                    "MitVarianten": {
                                        "summary": "Ausgabe Best\u00e4nde eines Produkts mit Varianten",
                                        "value": {
                                            "id": 46,
                                            "location": "https://localhost/shop/api/v2/private/products/46",
                                            "variations": [
                                                {
                                                    "variation_id": 130,
                                                    "sku": "46-1",
                                                    "stock_real": 1,
                                                    "stock_available": 1,
                                                    "stock_reserved": 0,
                                                    "depots": [
                                                        {
                                                            "depot_id": 1,
                                                            "stock": 1,
                                                            "stock_details": [
                                                                {
                                                                    "storage_location_id": 104,
                                                                    "stock": 1,
                                                                    "regal": 0,
                                                                    "fach": 0,
                                                                    "boden": 0,
                                                                    "lagerort": ""
                                                                }
                                                            ],
                                                            "depot_name": "Standardlager"
                                                        },
                                                        {
                                                            "depot_id": 2,
                                                            "stock": 0,
                                                            "stock_details": [],
                                                            "depot_name": "Nebenlager"
                                                        }
                                                    ]
                                                },
                                                {
                                                    "variation_id": 131,
                                                    "sku": "46-2",
                                                    "stock_real": 1,
                                                    "stock_available": 1,
                                                    "stock_reserved": 0,
                                                    "depots": [
                                                        {
                                                            "depot_id": 1,
                                                            "stock": 1,
                                                            "stock_details": [
                                                                {
                                                                    "storage_location_id": 105,
                                                                    "stock": 1,
                                                                    "regal": 0,
                                                                    "fach": 0,
                                                                    "boden": 0,
                                                                    "lagerort": ""
                                                                }
                                                            ],
                                                            "depot_name": "Standardlager"
                                                        },
                                                        {
                                                            "depot_id": 2,
                                                            "stock": 0,
                                                            "stock_details": [],
                                                            "depot_name": "Nebenlager"
                                                        }
                                                    ]
                                                }
                                            ]
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Gibt den Bestand f\u00fcr ein Produkt mit der Id zur\u00fcck",
                "description": "Gibt den Bestand und ggf weitere Bestandsdetails f\u00fcr einProdukt mit der Id zur\u00fcck.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetProductsStockbyidPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Artikel-ID die Id des Produkts"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "products.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "products.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/productshippingmethods": {
            "get": {
                "tags": [
                    "productshippingmethods"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productshippingmethod.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "41-1",
                                            "location": "https://localhost/shop/api/v2/private/productshippingmethods/41-1",
                                            "product_id": 41,
                                            "product_location": "https://localhost/shop/api/v2/private/products/41",
                                            "shipping_method_id": 1,
                                            "shipping_method_location": "https://localhost/shop/api/v2/private/shippingtypes/1"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productshippingmethods abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productshippingmethods.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductshippingmethodsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "productshippingmethods"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "41-1"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productshippingmethods/41-1"
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 41
                                                },
                                                "product_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/products/41"
                                                },
                                                "shipping_method_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "shipping_method_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/shippingtypes/1"
                                                },
                                                "product_name": {
                                                    "type": "string",
                                                    "example": "Neff Broh Sonnenbrille black"
                                                },
                                                "product_sku": {
                                                    "type": "string",
                                                    "example": "41"
                                                },
                                                "shipping_method_name": {
                                                    "type": "string",
                                                    "example": "DHL Paket"
                                                },
                                                "shipping_method_internal_name": {
                                                    "type": "string",
                                                    "example": "dhl_package"
                                                },
                                                "shipping_method_active": {
                                                    "type": "boolean",
                                                    "example": true
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "product_id": 41,
                                    "shipping_method_id": 1
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productshippingmethods anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Productshippingmethods.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostProductshippingmethodsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "product_id",
                                    "shipping_method_id"
                                ],
                                "properties": {
                                    "product_id": {
                                        "type": "integer",
                                        "example": 41
                                    },
                                    "shipping_method_id": {
                                        "type": "integer",
                                        "example": 1
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productshippingmethods/{id}": {
            "get": {
                "tags": [
                    "productshippingmethods"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "string",
                                                    "example": "41-1"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/productshippingmethods/41-1"
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "example": 41
                                                },
                                                "product_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/products/41"
                                                },
                                                "shipping_method_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "shipping_method_location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/shippingtypes/1"
                                                },
                                                "product_name": {
                                                    "type": "string",
                                                    "example": "Neff Broh Sonnenbrille black"
                                                },
                                                "product_sku": {
                                                    "type": "string",
                                                    "example": "41"
                                                },
                                                "shipping_method_name": {
                                                    "type": "string",
                                                    "example": "DHL Paket"
                                                },
                                                "shipping_method_internal_name": {
                                                    "type": "string",
                                                    "example": "dhl_package"
                                                },
                                                "shipping_method_active": {
                                                    "type": "boolean",
                                                    "example": true
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": "41-1",
                                        "location": "https://localhost/shop/api/v2/private/productshippingmethods/41-1",
                                        "product_id": 41,
                                        "product_location": "https://localhost/shop/api/v2/private/products/41",
                                        "shipping_method_id": 1,
                                        "shipping_method_location": "https://localhost/shop/api/v2/private/shippingtypes/1",
                                        "product_name": "Neff Broh Sonnenbrille black",
                                        "product_sku": "41",
                                        "shipping_method_name": "DHL Paket",
                                        "shipping_method_internal_name": "dhl_package",
                                        "shipping_method_active": true
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productshippingmethods Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productshippingmethods.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductshippingmethodsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "productshippingmethods"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productshippingmethods loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Productshippingmethods.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteProductshippingmethodsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productshippingmethods/search": {
            "get": {
                "tags": [
                    "productshippingmethods"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productshippingmethod.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "41-1",
                                            "location": "https://localhost/shop/api/v2/private/productshippingmethods/41-1",
                                            "product_id": 41,
                                            "product_location": "https://localhost/shop/api/v2/private/products/41",
                                            "shipping_method_id": 1,
                                            "shipping_method_location": "https://localhost/shop/api/v2/private/shippingtypes/1"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productshippingmethods suchen.",
                "description": "Sucht Datensaetze fuer Productshippingmethods anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductshippingmethodsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productspricehistory": {
            "get": {
                "tags": [
                    "productspricehistory"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Antwort auf GET /private/productspricehistory - Produkt-Preishistorien",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "description": "Eindeutige History-ID"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri",
                                                "description": "API-Link zum History-Eintrag"
                                            },
                                            "product_id": {
                                                "type": "integer",
                                                "description": "Produkt-ID"
                                            },
                                            "product_location": {
                                                "type": "string",
                                                "format": "uri",
                                                "description": "API-Link zum Produkt"
                                            },
                                            "variation_id": {
                                                "type": "integer",
                                                "description": "Varianten-ID"
                                            },
                                            "product_type": {
                                                "type": "integer",
                                                "description": "Interner Produkttyp"
                                            },
                                            "price_group_id": {
                                                "type": "integer",
                                                "description": "Preisgruppen-ID"
                                            },
                                            "price_group_name": {
                                                "type": "string",
                                                "description": "Preisgruppenname"
                                            },
                                            "size_id": {
                                                "type": "integer",
                                                "description": "Groessen-ID"
                                            },
                                            "color_id": {
                                                "type": "integer",
                                                "description": "Farb-ID"
                                            },
                                            "size_name": {
                                                "type": "string",
                                                "description": "Varianten-Groesse"
                                            },
                                            "color_name": {
                                                "type": "string",
                                                "description": "Varianten-Farbe"
                                            },
                                            "variation_name": {
                                                "type": "string",
                                                "description": "Historischer Name der vollst\u00e4ndigen Variantenkombination"
                                            },
                                            "variation_data": {
                                                "type": "array",
                                                "description": "Historischer Snapshot aller Variantendimensionen",
                                                "items": {
                                                    "type": "object"
                                                }
                                            },
                                            "price_type_id": {
                                                "type": "integer",
                                                "description": "Interner Preistyp"
                                            },
                                            "price_type": {
                                                "type": "string",
                                                "description": "Preistyp"
                                            },
                                            "old_price": {
                                                "type": "number",
                                                "description": "Alter Preis"
                                            },
                                            "new_price": {
                                                "type": "number",
                                                "description": "Neuer Preis"
                                            },
                                            "user": {
                                                "type": "string",
                                                "description": "Benutzer oder Prozess"
                                            },
                                            "timestamp": {
                                                "type": "integer",
                                                "description": "Unix-Zeitstempel"
                                            },
                                            "created_at": {
                                                "type": "string",
                                                "format": "date-time",
                                                "description": "Zeitpunkt als ISO-8601"
                                            },
                                            "log_name": {
                                                "type": "string",
                                                "description": "Historienbeschreibung"
                                            },
                                            "version": {
                                                "type": "integer",
                                                "description": "History-Version"
                                            },
                                            "has_error": {
                                                "type": "boolean",
                                                "description": "Kennzeichen fuer fehlerhafte Historie"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 654,
                                        "location": "https://example.com/api/v2/private/productspricehistory/654",
                                        "product_id": 123,
                                        "product_location": "https://example.com/api/v2/private/products/123",
                                        "product_type": 0,
                                        "variation_id": 456,
                                        "price_group_id": 0,
                                        "price_group_name": "Standard",
                                        "size_id": 10,
                                        "color_id": 20,
                                        "size_name": "L",
                                        "color_name": "Black",
                                        "variation_name": "L / Black / Cotton",
                                        "variation_data": [
                                            {
                                                "group_id": 10,
                                                "group_name": "Size",
                                                "item_id": 100,
                                                "item_name": "L",
                                                "legacy_type": "size"
                                            },
                                            {
                                                "group_id": 20,
                                                "group_name": "Color",
                                                "item_id": 200,
                                                "item_name": "Black",
                                                "legacy_type": "color"
                                            },
                                            {
                                                "group_id": 30,
                                                "group_name": "Material",
                                                "item_id": 300,
                                                "item_name": "Cotton",
                                                "legacy_type": ""
                                            }
                                        ],
                                        "price_type_id": 0,
                                        "price_type": "retail_price",
                                        "old_price": 49.9,
                                        "new_price": 44.9,
                                        "user": "API",
                                        "timestamp": 1767225600,
                                        "created_at": "2026-01-01T00:00:00+01:00",
                                        "log_name": "Price adjustment by API",
                                        "version": 1,
                                        "has_error": false
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Mehrere Produkt-Preishistorien abrufen.",
                "description": "Liefert Preishistorien fuer den angegebenen Zeitraum. Die Query-Parameter from und to sind Pflicht.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetProductspricehistoryPrivate",
                "parameters": [
                    {
                        "name": "from",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Start des Zeitraums, z.B. 2026-01-01 oder 2026-01-01 00:00:00"
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ende des Zeitraums, z.B. 2026-01-31 oder 2026-01-31 23:59:59"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 500)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "product_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Filtert nach Produkt-ID"
                    },
                    {
                        "name": "variation_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Filtert nach Varianten-ID"
                    },
                    {
                        "name": "price_group_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Filtert nach Preisgruppen-ID"
                    },
                    {
                        "name": "price_type_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Filtert nach Preistyp-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productspricehistory.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productspricehistory.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/productspricehistory/{id}": {
            "get": {
                "tags": [
                    "productspricehistory"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Antwort auf GET /private/productspricehistory/{id} - Produkt-Preishistorieneintrag",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Eindeutige History-ID"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API-Link zum History-Eintrag"
                                        },
                                        "product_id": {
                                            "type": "integer",
                                            "description": "Produkt-ID"
                                        },
                                        "product_location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API-Link zum Produkt"
                                        },
                                        "product_type": {
                                            "type": "integer",
                                            "description": "Interner Produkttyp"
                                        },
                                        "variation_id": {
                                            "type": "integer",
                                            "description": "Varianten-ID"
                                        },
                                        "price_group_id": {
                                            "type": "integer",
                                            "description": "Preisgruppen-ID"
                                        },
                                        "price_group_name": {
                                            "type": "string",
                                            "description": "Preisgruppenname"
                                        },
                                        "size_id": {
                                            "type": "integer",
                                            "description": "Groessen-ID"
                                        },
                                        "color_id": {
                                            "type": "integer",
                                            "description": "Farb-ID"
                                        },
                                        "size_name": {
                                            "type": "string",
                                            "description": "Varianten-Groesse"
                                        },
                                        "color_name": {
                                            "type": "string",
                                            "description": "Varianten-Farbe"
                                        },
                                        "variation_name": {
                                            "type": "string",
                                            "description": "Historischer Name der vollst\u00e4ndigen Variantenkombination"
                                        },
                                        "variation_data": {
                                            "type": "array",
                                            "description": "Historischer Snapshot aller Variantendimensionen",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "price_type_id": {
                                            "type": "integer",
                                            "description": "Interner Preistyp"
                                        },
                                        "price_type": {
                                            "type": "string",
                                            "description": "Preistyp"
                                        },
                                        "old_price": {
                                            "type": "number",
                                            "description": "Alter Preis"
                                        },
                                        "new_price": {
                                            "type": "number",
                                            "description": "Neuer Preis"
                                        },
                                        "user": {
                                            "type": "string",
                                            "description": "Benutzer oder Prozess"
                                        },
                                        "timestamp": {
                                            "type": "integer",
                                            "description": "Unix-Zeitstempel"
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "description": "Zeitpunkt als ISO-8601"
                                        },
                                        "log_name": {
                                            "type": "string",
                                            "description": "Historienbeschreibung"
                                        },
                                        "version": {
                                            "type": "integer",
                                            "description": "History-Version"
                                        },
                                        "has_error": {
                                            "type": "boolean",
                                            "description": "Kennzeichen fuer fehlerhafte Historie"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 654,
                                    "location": "https://example.com/api/v2/private/productspricehistory/654",
                                    "product_id": 123,
                                    "product_location": "https://example.com/api/v2/private/products/123",
                                    "product_type": 0,
                                    "variation_id": 456,
                                    "price_group_id": 0,
                                    "price_group_name": "Standard",
                                    "size_id": 10,
                                    "color_id": 20,
                                    "size_name": "L",
                                    "color_name": "Black",
                                    "variation_name": "L / Black / Cotton",
                                    "variation_data": [
                                        {
                                            "group_id": 10,
                                            "group_name": "Size",
                                            "item_id": 100,
                                            "item_name": "L",
                                            "legacy_type": "size"
                                        },
                                        {
                                            "group_id": 20,
                                            "group_name": "Color",
                                            "item_id": 200,
                                            "item_name": "Black",
                                            "legacy_type": "color"
                                        },
                                        {
                                            "group_id": 30,
                                            "group_name": "Material",
                                            "item_id": 300,
                                            "item_name": "Cotton",
                                            "legacy_type": ""
                                        }
                                    ],
                                    "price_type_id": 0,
                                    "price_type": "retail_price",
                                    "old_price": 49.9,
                                    "new_price": 44.9,
                                    "user": "API",
                                    "timestamp": 1767225600,
                                    "created_at": "2026-01-01T00:00:00+01:00",
                                    "log_name": "Price adjustment by API",
                                    "version": 1,
                                    "has_error": false
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Produkt-Preishistorieneintrags abrufen.",
                "description": "Liefert einen Preishistorieneintrag, wenn dieser im angegebenen Zeitraum liegt. Die Query-Parameter from und to sind Pflicht.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetProductspricehistoryDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "History-ID"
                    },
                    {
                        "name": "from",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Start des Zeitraums, z.B. 2026-01-01 oder 2026-01-01 00:00:00"
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ende des Zeitraums, z.B. 2026-01-31 oder 2026-01-31 23:59:59"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productspricehistory.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productspricehistory.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/productsstockhistory": {
            "get": {
                "tags": [
                    "productsstockhistory"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Antwort auf GET /private/productsstockhistory - Produkt-Bestandshistorien",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "description": "Eindeutige History-ID"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri",
                                                "description": "API-Link zum History-Eintrag"
                                            },
                                            "product_id": {
                                                "type": "integer",
                                                "description": "Produkt-ID"
                                            },
                                            "product_location": {
                                                "type": "string",
                                                "format": "uri",
                                                "description": "API-Link zum Produkt"
                                            },
                                            "variation_id": {
                                                "type": "integer",
                                                "description": "Varianten-ID"
                                            },
                                            "depot_id": {
                                                "type": "integer",
                                                "description": "Lager-ID"
                                            },
                                            "order_id": {
                                                "type": "integer",
                                                "description": "Bestell-ID"
                                            },
                                            "size_name": {
                                                "type": "string",
                                                "description": "Varianten-Groesse"
                                            },
                                            "color_name": {
                                                "type": "string",
                                                "description": "Varianten-Farbe"
                                            },
                                            "variation_name": {
                                                "type": "string",
                                                "description": "Historischer Name der vollst\u00e4ndigen Variantenkombination"
                                            },
                                            "variation_data": {
                                                "type": "array",
                                                "description": "Historischer Snapshot aller Variantendimensionen",
                                                "items": {
                                                    "type": "object"
                                                }
                                            },
                                            "stock_change": {
                                                "type": "integer",
                                                "description": "Bestandsveraenderung"
                                            },
                                            "stock_quantity": {
                                                "type": "integer",
                                                "description": "Bestand nach der Aenderung"
                                            },
                                            "reserved_quantity": {
                                                "type": "integer",
                                                "description": "Reservierter Bestand"
                                            },
                                            "calculated_reserved_quantity": {
                                                "type": "integer",
                                                "description": "Berechneter reservierter Bestand"
                                            },
                                            "depot_quantities": {
                                                "type": "array",
                                                "description": "Bestandsdaten je Lager aus der Historie"
                                            },
                                            "user": {
                                                "type": "string",
                                                "description": "Benutzer oder Prozess"
                                            },
                                            "type_id": {
                                                "type": "integer",
                                                "description": "Interner Bewegungstyp"
                                            },
                                            "type": {
                                                "type": "string",
                                                "description": "Bewegungstyp"
                                            },
                                            "timestamp": {
                                                "type": "integer",
                                                "description": "Unix-Zeitstempel"
                                            },
                                            "created_at": {
                                                "type": "string",
                                                "format": "date-time",
                                                "description": "Zeitpunkt als ISO-8601"
                                            },
                                            "log_name": {
                                                "type": "string",
                                                "description": "Historienbeschreibung"
                                            },
                                            "version": {
                                                "type": "integer",
                                                "description": "History-Version"
                                            },
                                            "has_error": {
                                                "type": "boolean",
                                                "description": "Kennzeichen fuer fehlerhafte Historie"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 987,
                                        "location": "https://example.com/api/v2/private/productsstockhistory/987",
                                        "product_id": 123,
                                        "product_location": "https://example.com/api/v2/private/products/123",
                                        "product_type": 0,
                                        "variation_id": 456,
                                        "depot_id": 1,
                                        "order_id": 0,
                                        "size_name": "L",
                                        "color_name": "Black",
                                        "variation_name": "L / Black / Cotton",
                                        "variation_data": [
                                            {
                                                "group_id": 10,
                                                "group_name": "Size",
                                                "item_id": 100,
                                                "item_name": "L",
                                                "legacy_type": "size"
                                            },
                                            {
                                                "group_id": 20,
                                                "group_name": "Color",
                                                "item_id": 200,
                                                "item_name": "Black",
                                                "legacy_type": "color"
                                            },
                                            {
                                                "group_id": 30,
                                                "group_name": "Material",
                                                "item_id": 300,
                                                "item_name": "Cotton",
                                                "legacy_type": ""
                                            }
                                        ],
                                        "stock_change": 5,
                                        "stock_quantity": 18,
                                        "reserved_quantity": 2,
                                        "calculated_reserved_quantity": 2,
                                        "depot_quantities": [],
                                        "user": "API",
                                        "type_id": 1,
                                        "type": "incoming",
                                        "timestamp": 1767225600,
                                        "created_at": "2026-01-01T00:00:00+01:00",
                                        "log_name": "Stock adjustment by API",
                                        "version": 1,
                                        "has_error": false
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Mehrere Produkt-Bestandshistorien abrufen.",
                "description": "Liefert Bestandshistorien fuer den angegebenen Zeitraum. Die Query-Parameter from und to sind Pflicht.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetProductsstockhistoryPrivate",
                "parameters": [
                    {
                        "name": "from",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Start des Zeitraums, z.B. 2026-01-01 oder 2026-01-01 00:00:00"
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ende des Zeitraums, z.B. 2026-01-31 oder 2026-01-31 23:59:59"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 500)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "product_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Filtert nach Produkt-ID"
                    },
                    {
                        "name": "variation_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Filtert nach Varianten-ID"
                    },
                    {
                        "name": "depot_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Filtert nach Lager-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productsstockhistory.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productsstockhistory.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/productsstockhistory/{id}": {
            "get": {
                "tags": [
                    "productsstockhistory"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Antwort auf GET /private/productsstockhistory/{id} - Produkt-Bestandshistorieneintrag",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Eindeutige History-ID"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API-Link zum History-Eintrag"
                                        },
                                        "product_id": {
                                            "type": "integer",
                                            "description": "Produkt-ID"
                                        },
                                        "product_location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API-Link zum Produkt"
                                        },
                                        "product_type": {
                                            "type": "integer",
                                            "description": "Interner Produkttyp"
                                        },
                                        "variation_id": {
                                            "type": "integer",
                                            "description": "Varianten-ID"
                                        },
                                        "depot_id": {
                                            "type": "integer",
                                            "description": "Lager-ID"
                                        },
                                        "order_id": {
                                            "type": "integer",
                                            "description": "Bestell-ID"
                                        },
                                        "size_name": {
                                            "type": "string",
                                            "description": "Varianten-Groesse"
                                        },
                                        "color_name": {
                                            "type": "string",
                                            "description": "Varianten-Farbe"
                                        },
                                        "variation_name": {
                                            "type": "string",
                                            "description": "Historischer Name der vollst\u00e4ndigen Variantenkombination"
                                        },
                                        "variation_data": {
                                            "type": "array",
                                            "description": "Historischer Snapshot aller Variantendimensionen",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "stock_change": {
                                            "type": "integer",
                                            "description": "Bestandsveraenderung"
                                        },
                                        "stock_quantity": {
                                            "type": "integer",
                                            "description": "Bestand nach der Aenderung"
                                        },
                                        "reserved_quantity": {
                                            "type": "integer",
                                            "description": "Reservierter Bestand"
                                        },
                                        "calculated_reserved_quantity": {
                                            "type": "integer",
                                            "description": "Berechneter reservierter Bestand"
                                        },
                                        "depot_quantities": {
                                            "type": "array",
                                            "description": "Bestandsdaten je Lager aus der Historie"
                                        },
                                        "user": {
                                            "type": "string",
                                            "description": "Benutzer oder Prozess"
                                        },
                                        "type_id": {
                                            "type": "integer",
                                            "description": "Interner Bewegungstyp"
                                        },
                                        "type": {
                                            "type": "string",
                                            "description": "Bewegungstyp"
                                        },
                                        "timestamp": {
                                            "type": "integer",
                                            "description": "Unix-Zeitstempel"
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "description": "Zeitpunkt als ISO-8601"
                                        },
                                        "log_name": {
                                            "type": "string",
                                            "description": "Historienbeschreibung"
                                        },
                                        "version": {
                                            "type": "integer",
                                            "description": "History-Version"
                                        },
                                        "has_error": {
                                            "type": "boolean",
                                            "description": "Kennzeichen fuer fehlerhafte Historie"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 987,
                                    "location": "https://example.com/api/v2/private/productsstockhistory/987",
                                    "product_id": 123,
                                    "product_location": "https://example.com/api/v2/private/products/123",
                                    "product_type": 0,
                                    "variation_id": 456,
                                    "depot_id": 1,
                                    "order_id": 0,
                                    "size_name": "L",
                                    "color_name": "Black",
                                    "variation_name": "L / Black / Cotton",
                                    "variation_data": [
                                        {
                                            "group_id": 10,
                                            "group_name": "Size",
                                            "item_id": 100,
                                            "item_name": "L",
                                            "legacy_type": "size"
                                        },
                                        {
                                            "group_id": 20,
                                            "group_name": "Color",
                                            "item_id": 200,
                                            "item_name": "Black",
                                            "legacy_type": "color"
                                        },
                                        {
                                            "group_id": 30,
                                            "group_name": "Material",
                                            "item_id": 300,
                                            "item_name": "Cotton",
                                            "legacy_type": ""
                                        }
                                    ],
                                    "stock_change": 5,
                                    "stock_quantity": 18,
                                    "reserved_quantity": 2,
                                    "calculated_reserved_quantity": 2,
                                    "depot_quantities": [],
                                    "user": "API",
                                    "type_id": 1,
                                    "type": "incoming",
                                    "timestamp": 1767225600,
                                    "created_at": "2026-01-01T00:00:00+01:00",
                                    "log_name": "Stock adjustment by API",
                                    "version": 1,
                                    "has_error": false
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Produkt-Bestandshistorieneintrags abrufen.",
                "description": "Liefert einen Bestandshistorieneintrag, wenn dieser im angegebenen Zeitraum liegt. Die Query-Parameter from und to sind Pflicht.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetProductsstockhistoryDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "History-ID"
                    },
                    {
                        "name": "from",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Start des Zeitraums, z.B. 2026-01-01 oder 2026-01-01 00:00:00"
                    },
                    {
                        "name": "to",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Ende des Zeitraums, z.B. 2026-01-31 oder 2026-01-31 23:59:59"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productsstockhistory.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productsstockhistory.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/productvariationgroups": {
            "get": {
                "tags": [
                    "productvariationgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Produkt-Variantengruppen abrufen.",
                "description": "Liefert eine paginierte Liste der Variantengruppen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductvariationgroupsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt die Variantenelemente mit aus."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "productvariationgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Produkt-Variantengruppe erstellen.",
                "description": "Erstellt eine allgemeine Variantengruppe. Groessen-/Farb-Altdaten werden nicht automatisch angelegt.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostProductvariationgroupsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "\"name\"": {
                                        "type": "string"
                                    },
                                    "\"frontend_name\"": {
                                        "type": "string"
                                    },
                                    "\"use_frontend_name\"": {
                                        "type": "string"
                                    },
                                    "\"presentation_type\"": {
                                        "type": "string"
                                    },
                                    "\"variation_icons\"": {
                                        "type": "string"
                                    },
                                    "\"sort_order\"": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productvariationgroups/{id}": {
            "get": {
                "tags": [
                    "productvariationgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Produkt-Variantengruppe abrufen.",
                "description": "Liefert eine Variantengruppe mit ihren Elementen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductvariationgroupsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "productvariationgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Produkt-Variantengruppe aktualisieren.",
                "description": "\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutProductvariationgroupsDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "\"name\"": {
                                        "type": "string"
                                    },
                                    "\"frontend_name\"": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "productvariationgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Produkt-Variantengruppe loeschen.",
                "description": "\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteProductvariationgroupsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productvariationgroups/search": {
            "get": {
                "tags": [
                    "productvariationgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Produkt-Variantengruppen suchen.",
                "description": "Sucht Variantengruppen anhand des internen oder sichtbaren Namens.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductvariationgroupsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productvariationitems": {
            "get": {
                "tags": [
                    "productvariationitems"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Produkt-Variantenelemente abrufen.",
                "description": "Liefert eine paginierte Liste der Variantenelemente.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductvariationitemsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "productvariationitems"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Produkt-Variantenelement erstellen.",
                "description": "\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostProductvariationitemsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "\"variation_group_id\"": {
                                        "type": "string"
                                    },
                                    "\"name\"": {
                                        "type": "string"
                                    },
                                    "\"color\"": {
                                        "type": "string"
                                    },
                                    "\"sort_order\"": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productvariationitems/{id}": {
            "get": {
                "tags": [
                    "productvariationitems"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Produkt-Variantenelement abrufen.",
                "description": "Liefert ein einzelnes Variantenelement.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductvariationitemsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "productvariationitems"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Produkt-Variantenelement aktualisieren.",
                "description": "\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutProductvariationitemsDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "\"name\"": {
                                        "type": "string"
                                    },
                                    "\"color\"": {
                                        "type": "string"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "productvariationitems"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Produkt-Variantenelement loeschen.",
                "description": "\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteProductvariationitemsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productvariationitems/search": {
            "get": {
                "tags": [
                    "productvariationitems"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Produkt-Variantenelemente suchen.",
                "description": "Sucht Variantenelemente anhand des Element- oder Gruppennamens.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductvariationitemsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productviewtabs": {
            "get": {
                "tags": [
                    "productviewtabs"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "key": {
                                                "type": "string"
                                            },
                                            "name": {
                                                "type": "string"
                                            },
                                            "multishop_id": {
                                                "type": "integer"
                                            },
                                            "enabled": {
                                                "type": "boolean"
                                            },
                                            "sort_order": {
                                                "type": "integer"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/productviewtabs/1",
                                        "key": "description",
                                        "name": "Beschreibung",
                                        "multishop_id": 1,
                                        "enabled": true,
                                        "sort_order": 10
                                    },
                                    {
                                        "id": 2,
                                        "location": "https://localhost/shop/api/v2/private/productviewtabs/2",
                                        "key": "properties",
                                        "name": "Merkmale",
                                        "multishop_id": 1,
                                        "enabled": true,
                                        "sort_order": 20
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Produktdetail-Karteireiter abrufen.",
                "description": "Liefert Daten fuer mehrere Produktdetail-Karteireiter. Schreibaktionen sind bewusst nicht Teil dieses Controllers, weil die Backend-UI Standard-Tabs installiert und nur Status-/Sortieraktionen anbietet.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetProductviewtabsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "key": {
                                    "type": "string"
                                },
                                "multishop_id": {
                                    "type": "integer"
                                },
                                "enabled": {
                                    "type": "integer"
                                }
                            }
                        },
                        "description": "Filtert nach Key, Multishop oder Aktivstatus"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productviewtabs.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productviewtabs.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/productviewtabs/{id}": {
            "get": {
                "tags": [
                    "productviewtabs"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "key": {
                                            "type": "string"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "multishop_id": {
                                            "type": "integer"
                                        },
                                        "enabled": {
                                            "type": "boolean"
                                        },
                                        "sort_order": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/productviewtabs/1",
                                    "key": "description",
                                    "name": "Beschreibung",
                                    "multishop_id": 1,
                                    "enabled": true,
                                    "sort_order": 10
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Produktdetail-Karteireiters abrufen.",
                "description": "Liefert Daten zu einem Produktdetail-Karteireiter.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetProductviewtabsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Produktdetail-Karteireiter-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productviewtabs.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productviewtabs.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/productviewtabs/search": {
            "get": {
                "tags": [
                    "productviewtabs"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "key": {
                                                "type": "string"
                                            },
                                            "name": {
                                                "type": "string"
                                            },
                                            "multishop_id": {
                                                "type": "integer"
                                            },
                                            "enabled": {
                                                "type": "boolean"
                                            },
                                            "sort_order": {
                                                "type": "integer"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/productviewtabs/1",
                                        "key": "description",
                                        "name": "Beschreibung",
                                        "multishop_id": 1,
                                        "enabled": true,
                                        "sort_order": 10
                                    },
                                    {
                                        "id": 2,
                                        "location": "https://localhost/shop/api/v2/private/productviewtabs/2",
                                        "key": "properties",
                                        "name": "Merkmale",
                                        "multishop_id": 1,
                                        "enabled": true,
                                        "sort_order": 20
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Produktdetail-Karteireitern nach einem String.",
                "description": "Sucht in Produktdetail-Karteireitern nach technischem Key.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetProductviewtabsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "productviewtabs.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "productviewtabs.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/productvisibility": {
            "get": {
                "tags": [
                    "productvisibility"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productvisibility_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "41-1",
                                            "location": "https://localhost/shop/api/v2/private/productvisibility/41-1",
                                            "product_id": 41,
                                            "product_location": "https://localhost/shop/api/v2/private/products/41",
                                            "customer_group_id": 1,
                                            "customer_group_location": "https://localhost/shop/api/v2/private/customergroups/1"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productvisibility abrufen.",
                "description": "Liefert eine paginierte Liste fuer Productvisibility.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductvisibilityPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "productvisibility"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productvisibility_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "product_id": 41,
                                    "customer_group_id": 1
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productvisibility anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Productvisibility.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostProductvisibilityPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "product_id",
                                    "customer_group_id"
                                ],
                                "properties": {
                                    "product_id": {
                                        "type": "integer",
                                        "example": 41
                                    },
                                    "customer_group_id": {
                                        "type": "integer",
                                        "example": 1
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productvisibility/{id}": {
            "get": {
                "tags": [
                    "productvisibility"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productvisibility_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "41-1",
                                            "location": "https://localhost/shop/api/v2/private/productvisibility/41-1",
                                            "product_id": 41,
                                            "product_location": "https://localhost/shop/api/v2/private/products/41",
                                            "customer_group_id": 1,
                                            "customer_group_location": "https://localhost/shop/api/v2/private/customergroups/1"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productvisibility Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Productvisibility.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductvisibilityDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "productvisibility"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productvisibility loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Productvisibility.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteProductvisibilityDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/productvisibility/search": {
            "get": {
                "tags": [
                    "productvisibility"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_productvisibility_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "41-1",
                                            "location": "https://localhost/shop/api/v2/private/productvisibility/41-1",
                                            "product_id": 41,
                                            "product_location": "https://localhost/shop/api/v2/private/products/41",
                                            "customer_group_id": 1,
                                            "customer_group_location": "https://localhost/shop/api/v2/private/customergroups/1"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Productvisibility suchen.",
                "description": "Sucht Datensaetze fuer Productvisibility anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProductvisibilitySearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/promotions": {
            "get": {
                "tags": [
                    "promotions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 5,
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "/private/promotions/5",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Free gift campaign",
                                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                    },
                                                    "status": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "Statuswert des Datensatzes."
                                                    },
                                                    "status_name": {
                                                        "type": "string",
                                                        "example": "active",
                                                        "description": "Lesbarer Name des Status."
                                                    },
                                                    "currently_active": {
                                                        "type": "boolean",
                                                        "example": true,
                                                        "description": "Feld `currently_active` des Datensatzes."
                                                    },
                                                    "valid_from": {
                                                        "type": "string",
                                                        "example": "2026-06-01 00:00:00",
                                                        "description": "Gueltig ab Datum."
                                                    },
                                                    "valid_to": {
                                                        "type": "string",
                                                        "example": "2026-06-30 23:59:00",
                                                        "description": "Gueltig bis Datum."
                                                    },
                                                    "minimum_order_value": {
                                                        "type": "number",
                                                        "example": 50,
                                                        "description": "Mindestbestellwert."
                                                    },
                                                    "customer_group_count": {
                                                        "type": "integer",
                                                        "example": 2,
                                                        "description": "Feld `customer_group_count` des Datensatzes."
                                                    },
                                                    "voucher_count": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "Feld `voucher_count` des Datensatzes."
                                                    },
                                                    "variation_count": {
                                                        "type": "integer",
                                                        "example": 3,
                                                        "description": "Feld `variation_count` des Datensatzes."
                                                    },
                                                    "redemption_count": {
                                                        "type": "integer",
                                                        "example": 12,
                                                        "description": "Anzahl der Einloesungen."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1,
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100,
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0,
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Promotions."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 5,
                                            "location": "/private/promotions/5",
                                            "name": "Free gift campaign",
                                            "status": 1,
                                            "status_name": "active",
                                            "currently_active": true,
                                            "valid_from": "2026-06-01 00:00:00",
                                            "valid_to": "2026-06-30 23:59:00",
                                            "minimum_order_value": 50
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 100,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Aktionen abrufen",
                "description": "Gibt Aktions-Stammdaten zurueck. Schreibzugriffe sind nicht freigegeben, weil die Backend-UI Aktionen zusammen mit Kundengruppen-, Gutschein- und Artikelzuordnungen speichert.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetPromotionsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Zuordnungs- und Einloesezaehler ausgeben."
                    },
                    {
                        "name": "id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Aktion filtern."
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Status filtern."
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Aktionsname filtern."
                    },
                    {
                        "name": "starts_before",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter promotions starting before this date time."
                    },
                    {
                        "name": "ends_after",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter promotions ending after this date time."
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/promotions/{id}": {
            "get": {
                "tags": [
                    "promotions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 5,
                                                    "description": "Interne ID des Datensatzes."
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "/private/promotions/5",
                                                    "description": "API-URL zur Detailansicht des Datensatzes."
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Free gift campaign",
                                                    "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                },
                                                "status_name": {
                                                    "type": "string",
                                                    "example": "active",
                                                    "description": "Lesbarer Name des Status."
                                                },
                                                "currently_active": {
                                                    "type": "boolean",
                                                    "example": true,
                                                    "description": "Feld `currently_active` des Datensatzes."
                                                },
                                                "customer_group_count": {
                                                    "type": "integer",
                                                    "example": 2,
                                                    "description": "Feld `customer_group_count` des Datensatzes."
                                                },
                                                "voucher_count": {
                                                    "type": "integer",
                                                    "example": 1,
                                                    "description": "Feld `voucher_count` des Datensatzes."
                                                },
                                                "variation_count": {
                                                    "type": "integer",
                                                    "example": 3,
                                                    "description": "Feld `variation_count` des Datensatzes."
                                                },
                                                "redemption_count": {
                                                    "type": "integer",
                                                    "example": 12,
                                                    "description": "Anzahl der Einloesungen."
                                                },
                                                "redemption_quantity": {
                                                    "type": "integer",
                                                    "example": 12,
                                                    "description": "Feld `redemption_quantity` des Datensatzes."
                                                },
                                                "redemption_purchase_total": {
                                                    "type": "number",
                                                    "example": 120,
                                                    "description": "Feld `redemption_purchase_total` des Datensatzes."
                                                },
                                                "redemption_sales_total": {
                                                    "type": "number",
                                                    "example": 240,
                                                    "description": "Feld `redemption_sales_total` des Datensatzes."
                                                }
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        }
                                    },
                                    "description": "Schema fuer Promotions."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 5,
                                        "location": "/private/promotions/5",
                                        "name": "Free gift campaign",
                                        "status": 1,
                                        "status_name": "active",
                                        "currently_active": true,
                                        "valid_from": "2026-06-01 00:00:00",
                                        "valid_to": "2026-06-30 23:59:00",
                                        "minimum_order_value": 50,
                                        "customer_group_count": 2,
                                        "voucher_count": 1,
                                        "variation_count": 3,
                                        "redemption_count": 12,
                                        "redemption_quantity": 12,
                                        "redemption_purchase_total": 120,
                                        "redemption_sales_total": 240
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Aktion abrufen",
                "description": "Gibt eine einzelne Aktion zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetPromotionsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/promotions/search": {
            "get": {
                "tags": [
                    "promotions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 5,
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "/private/promotions/5",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Free gift campaign",
                                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                    },
                                                    "status": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "Statuswert des Datensatzes."
                                                    },
                                                    "status_name": {
                                                        "type": "string",
                                                        "example": "active",
                                                        "description": "Lesbarer Name des Status."
                                                    },
                                                    "currently_active": {
                                                        "type": "boolean",
                                                        "example": true,
                                                        "description": "Feld `currently_active` des Datensatzes."
                                                    },
                                                    "valid_from": {
                                                        "type": "string",
                                                        "example": "2026-06-01 00:00:00",
                                                        "description": "Gueltig ab Datum."
                                                    },
                                                    "valid_to": {
                                                        "type": "string",
                                                        "example": "2026-06-30 23:59:00",
                                                        "description": "Gueltig bis Datum."
                                                    },
                                                    "minimum_order_value": {
                                                        "type": "number",
                                                        "example": 50,
                                                        "description": "Mindestbestellwert."
                                                    },
                                                    "customer_group_count": {
                                                        "type": "integer",
                                                        "example": 2,
                                                        "description": "Feld `customer_group_count` des Datensatzes."
                                                    },
                                                    "voucher_count": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "Feld `voucher_count` des Datensatzes."
                                                    },
                                                    "variation_count": {
                                                        "type": "integer",
                                                        "example": 3,
                                                        "description": "Feld `variation_count` des Datensatzes."
                                                    },
                                                    "redemption_count": {
                                                        "type": "integer",
                                                        "example": 12,
                                                        "description": "Anzahl der Einloesungen."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1,
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100,
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0,
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Promotions."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 5,
                                            "location": "/private/promotions/5",
                                            "name": "Free gift campaign",
                                            "status": 1,
                                            "status_name": "active",
                                            "currently_active": true,
                                            "valid_from": "2026-06-01 00:00:00",
                                            "valid_to": "2026-06-30 23:59:00",
                                            "minimum_order_value": 50
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 100,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Aktionen suchen",
                "description": "Sucht Aktionen nach Name.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetPromotionsSearchPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/protectedshops": {
            "get": {
                "tags": [
                    "protectedshops"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/protectedshops/1"
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "ps_shop_id": {
                                                        "type": "string",
                                                        "example": "protected-shop-id"
                                                    },
                                                    "auto": {
                                                        "type": "string",
                                                        "example": "1"
                                                    },
                                                    "auto_interval": {
                                                        "type": "integer",
                                                        "example": 60
                                                    },
                                                    "multishop_name": {
                                                        "type": "string",
                                                        "example": "Hauptshop"
                                                    },
                                                    "documents": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object"
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/protectedshops/1",
                                            "multishop_id": 1,
                                            "ps_shop_id": "protected-shop-id",
                                            "auto": "1",
                                            "auto_interval": 60,
                                            "multishop_name": "Hauptshop",
                                            "documents": [
                                                {
                                                    "id": 1,
                                                    "protectedshops_id": 1,
                                                    "type": "AGB",
                                                    "status": 1,
                                                    "sync_status": 1,
                                                    "site": "12",
                                                    "site_name": "AGB",
                                                    "last_time": "2026-06-12 10:25:00",
                                                    "new_version": 0
                                                }
                                            ]
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Protectedshops abrufen.",
                "description": "Liefert eine paginierte Liste fuer Protectedshops.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProtectedshopsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/protectedshops/{id}": {
            "get": {
                "tags": [
                    "protectedshops"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/protectedshops/1"
                                                },
                                                "multishop_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "ps_shop_id": {
                                                    "type": "string",
                                                    "example": "protected-shop-id"
                                                },
                                                "auto": {
                                                    "type": "string",
                                                    "example": "1"
                                                },
                                                "auto_interval": {
                                                    "type": "integer",
                                                    "example": 60
                                                },
                                                "multishop_name": {
                                                    "type": "string",
                                                    "example": "Hauptshop"
                                                },
                                                "documents": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/protectedshops/1",
                                        "multishop_id": 1,
                                        "ps_shop_id": "protected-shop-id",
                                        "auto": "1",
                                        "auto_interval": 60,
                                        "multishop_name": "Hauptshop",
                                        "documents": [
                                            {
                                                "id": 1,
                                                "protectedshops_id": 1,
                                                "type": "AGB",
                                                "status": 1,
                                                "sync_status": 1,
                                                "site": "12",
                                                "site_name": "AGB",
                                                "last_time": "2026-06-12 10:25:00",
                                                "new_version": 0
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Protectedshops Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Protectedshops.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProtectedshopsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/protectedshops/search": {
            "get": {
                "tags": [
                    "protectedshops"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/protectedshops/1"
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "ps_shop_id": {
                                                        "type": "string",
                                                        "example": "protected-shop-id"
                                                    },
                                                    "auto": {
                                                        "type": "string",
                                                        "example": "1"
                                                    },
                                                    "auto_interval": {
                                                        "type": "integer",
                                                        "example": 60
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/protectedshops/1",
                                            "multishop_id": 1,
                                            "ps_shop_id": "protected-shop-id",
                                            "auto": "1",
                                            "auto_interval": 60
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Protectedshops suchen.",
                "description": "Sucht Datensaetze fuer Protectedshops anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetProtectedshopsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/redirects": {
            "get": {
                "tags": [
                    "redirects"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "v2/docs/returns/Redirects/get_redirect.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/redirects/1",
                                        "source_url": "/alte-seite",
                                        "target_url": "/neue-seite",
                                        "multishop_id": 1
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere URL-Weiterleitungen abrufen.",
                "description": "Liefert Daten fuer mehrere URL-Weiterleitungen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetRedirectsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "source_url": {
                                    "type": "string"
                                },
                                "target_url": {
                                    "type": "string"
                                },
                                "multishop_id": {
                                    "type": "integer"
                                }
                            }
                        },
                        "description": "Filtert nach Quelle, Ziel oder Multishop"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "redirects.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "redirects.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "redirects"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "URL-Weiterleitung erstellen.",
                "description": "Erstellt eine URL-Weiterleitung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostRedirectsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "source_url",
                                    "target_url"
                                ],
                                "properties": {
                                    "source_url": {
                                        "type": "string",
                                        "description": "Quell-URL oder Quellpfad",
                                        "example": "/alte-seite"
                                    },
                                    "target_url": {
                                        "type": "string",
                                        "description": "Ziel-URL oder Zielpfad",
                                        "example": "/neue-seite"
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Id des Multishops",
                                        "example": 1
                                    }
                                }
                            },
                            "example": {
                                "source_url": "/alte-seite",
                                "target_url": "/neue-seite",
                                "multishop_id": 1
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "redirects.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "redirects.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/redirects/{id}": {
            "get": {
                "tags": [
                    "redirects"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": 1
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Object",
                                            "example": "https://localhost/shop/api/v2/private/redirects/1"
                                        },
                                        "source_url": {
                                            "type": "string",
                                            "description": "Quell-URL oder Quellpfad",
                                            "example": "/alte-seite"
                                        },
                                        "target_url": {
                                            "type": "string",
                                            "description": "Ziel-URL oder Zielpfad",
                                            "example": "/neue-seite"
                                        },
                                        "multishop_id": {
                                            "type": "integer",
                                            "description": "Id des Multishops",
                                            "example": 1
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/redirects/1",
                                    "source_url": "/alte-seite",
                                    "target_url": "/neue-seite",
                                    "multishop_id": 1
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer URL-Weiterleitung abrufen.",
                "description": "Liefert Daten zu einer URL-Weiterleitung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetRedirectsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Redirect-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "redirects.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "redirects.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "redirects"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "URL-Weiterleitung aktualisieren.",
                "description": "Aktualisiert eine URL-Weiterleitung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutRedirectsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Redirect-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "source_url": {
                                        "type": "string",
                                        "description": "Quell-URL oder Quellpfad",
                                        "example": "/alte-seite"
                                    },
                                    "target_url": {
                                        "type": "string",
                                        "description": "Ziel-URL oder Zielpfad",
                                        "example": "/neue-seite"
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Id des Multishops",
                                        "example": 1
                                    }
                                }
                            },
                            "example": {
                                "target_url": "/andere-neue-seite"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "redirects.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "redirects.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "redirects"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "URL-Weiterleitung loeschen.",
                "description": "Loescht eine URL-Weiterleitung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteRedirectsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Redirect-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "redirects.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "redirects.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/redirects/search": {
            "get": {
                "tags": [
                    "redirects"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "v2/docs/returns/Redirects/get_redirect.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/redirects/1",
                                        "source_url": "/alte-seite",
                                        "target_url": "/neue-seite",
                                        "multishop_id": 1
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in URL-Weiterleitungen nach einem String.",
                "description": "Sucht in URL-Weiterleitungen nach Quelle.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetRedirectsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "redirects.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "redirects.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/referrers": {
            "get": {
                "tags": [
                    "referrers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "description": "ID des Multishops."
                                                    },
                                                    "ip": {
                                                        "type": "string",
                                                        "description": "IP-Adresse des Besuchers."
                                                    },
                                                    "host": {
                                                        "type": "string",
                                                        "description": "Host oder Domain des Referrers."
                                                    },
                                                    "ref_source": {
                                                        "type": "string",
                                                        "description": "Quelle des Referrers."
                                                    },
                                                    "link": {
                                                        "type": "string",
                                                        "description": "Link oder URL."
                                                    },
                                                    "created_at": {
                                                        "type": "string",
                                                        "description": "Erstellungszeitpunkt des Datensatzes."
                                                    },
                                                    "clicks": {
                                                        "type": "integer",
                                                        "description": "Feld `clicks` des Datensatzes."
                                                    },
                                                    "useragent": {
                                                        "type": "string",
                                                        "description": "Feld `useragent` des Datensatzes."
                                                    },
                                                    "country_code": {
                                                        "type": "string",
                                                        "description": "Laendercode."
                                                    },
                                                    "country_name": {
                                                        "type": "string",
                                                        "description": "Feld `country_name` des Datensatzes."
                                                    },
                                                    "city": {
                                                        "type": "string",
                                                        "description": "Ort."
                                                    },
                                                    "latitude": {
                                                        "type": "number",
                                                        "description": "Feld `latitude` des Datensatzes."
                                                    },
                                                    "longitude": {
                                                        "type": "number",
                                                        "description": "Feld `longitude` des Datensatzes."
                                                    },
                                                    "utm_source": {
                                                        "type": "string",
                                                        "description": "UTM-Quelle."
                                                    },
                                                    "utm_medium": {
                                                        "type": "string",
                                                        "description": "UTM-Medium."
                                                    },
                                                    "utm_campaign": {
                                                        "type": "string",
                                                        "description": "UTM-Kampagne."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Referrers."
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Referrer-Logeintraege abrufen",
                "description": "Gibt Referrer-Logeintraege mit optionalen Filtern und Details zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetReferrersPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Browser- und Geodetails ausgeben."
                    },
                    {
                        "name": "multishop_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Multishop filtern."
                    },
                    {
                        "name": "ip",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Besucher-IP filtern."
                    },
                    {
                        "name": "host",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Host filtern."
                    },
                    {
                        "name": "ref_source",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Referrer-Quelle filtern."
                    },
                    {
                        "name": "utm_source",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach UTM-Quelle filtern."
                    },
                    {
                        "name": "utm_medium",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach UTM-Medium filtern."
                    },
                    {
                        "name": "utm_campaign",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach UTM-Kampagne filtern."
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Startdatum im Format YYYY-MM-DD filtern."
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Enddatum im Format YYYY-MM-DD filtern."
                    },
                    {
                        "name": "country_code",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Laendercode filtern."
                    },
                    {
                        "name": "city",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Ort filtern."
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/referrers/{id}": {
            "get": {
                "tags": [
                    "referrers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Interne ID des Datensatzes."
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API-URL zur Detailansicht des Datensatzes."
                                        },
                                        "multishop_id": {
                                            "type": "integer",
                                            "description": "ID des Multishops."
                                        },
                                        "ip": {
                                            "type": "string",
                                            "description": "IP-Adresse des Besuchers."
                                        },
                                        "host": {
                                            "type": "string",
                                            "description": "Host oder Domain des Referrers."
                                        },
                                        "ref_source": {
                                            "type": "string",
                                            "description": "Quelle des Referrers."
                                        },
                                        "link": {
                                            "type": "string",
                                            "description": "Link oder URL."
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "description": "Erstellungszeitpunkt des Datensatzes."
                                        },
                                        "clicks": {
                                            "type": "integer",
                                            "description": "Feld `clicks` des Datensatzes."
                                        },
                                        "useragent": {
                                            "type": "string",
                                            "description": "Feld `useragent` des Datensatzes."
                                        },
                                        "country_code": {
                                            "type": "string",
                                            "description": "Laendercode."
                                        },
                                        "country_name": {
                                            "type": "string",
                                            "description": "Feld `country_name` des Datensatzes."
                                        },
                                        "city": {
                                            "type": "string",
                                            "description": "Ort."
                                        },
                                        "latitude": {
                                            "type": "number",
                                            "description": "Feld `latitude` des Datensatzes."
                                        },
                                        "longitude": {
                                            "type": "number",
                                            "description": "Feld `longitude` des Datensatzes."
                                        },
                                        "utm_source": {
                                            "type": "string",
                                            "description": "UTM-Quelle."
                                        },
                                        "utm_medium": {
                                            "type": "string",
                                            "description": "UTM-Medium."
                                        },
                                        "utm_campaign": {
                                            "type": "string",
                                            "description": "UTM-Kampagne."
                                        }
                                    },
                                    "description": "Schema fuer Referrers."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/private/referrers/1",
                                            "multishop_id": 1,
                                            "ip": "127.0.0.1",
                                            "host": "example.org",
                                            "ref_source": "search",
                                            "link": "https://example.org/path",
                                            "created_at": "2026-06-12 09:00:00",
                                            "clicks": 1
                                        }
                                    ],
                                    "meta": {
                                        "total": 1,
                                        "limit": 100,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Referrer-Logeintrag abrufen",
                "description": "Gibt einen einzelnen Referrer-Logeintrag zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetReferrersDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/referrers/search": {
            "get": {
                "tags": [
                    "referrers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "description": "ID des Multishops."
                                                    },
                                                    "ip": {
                                                        "type": "string",
                                                        "description": "IP-Adresse des Besuchers."
                                                    },
                                                    "host": {
                                                        "type": "string",
                                                        "description": "Host oder Domain des Referrers."
                                                    },
                                                    "ref_source": {
                                                        "type": "string",
                                                        "description": "Quelle des Referrers."
                                                    },
                                                    "link": {
                                                        "type": "string",
                                                        "description": "Link oder URL."
                                                    },
                                                    "created_at": {
                                                        "type": "string",
                                                        "description": "Erstellungszeitpunkt des Datensatzes."
                                                    },
                                                    "clicks": {
                                                        "type": "integer",
                                                        "description": "Feld `clicks` des Datensatzes."
                                                    },
                                                    "useragent": {
                                                        "type": "string",
                                                        "description": "Feld `useragent` des Datensatzes."
                                                    },
                                                    "country_code": {
                                                        "type": "string",
                                                        "description": "Laendercode."
                                                    },
                                                    "country_name": {
                                                        "type": "string",
                                                        "description": "Feld `country_name` des Datensatzes."
                                                    },
                                                    "city": {
                                                        "type": "string",
                                                        "description": "Ort."
                                                    },
                                                    "latitude": {
                                                        "type": "number",
                                                        "description": "Feld `latitude` des Datensatzes."
                                                    },
                                                    "longitude": {
                                                        "type": "number",
                                                        "description": "Feld `longitude` des Datensatzes."
                                                    },
                                                    "utm_source": {
                                                        "type": "string",
                                                        "description": "UTM-Quelle."
                                                    },
                                                    "utm_medium": {
                                                        "type": "string",
                                                        "description": "UTM-Medium."
                                                    },
                                                    "utm_campaign": {
                                                        "type": "string",
                                                        "description": "UTM-Kampagne."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Referrers."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/private/referrers/1",
                                            "multishop_id": 1,
                                            "ip": "127.0.0.1",
                                            "host": "example.org",
                                            "ref_source": "search",
                                            "link": "https://example.org/path",
                                            "created_at": "2026-06-12 09:00:00",
                                            "clicks": 1
                                        }
                                    ],
                                    "meta": {
                                        "total": 1,
                                        "limit": 100,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Referrer-Logeintraege suchen",
                "description": "Sucht Referrer-Logeintraege nach Quelle, Host, UTM-Werten oder Ort.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetReferrersSearchPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/salutations": {
            "get": {
                "tags": [
                    "salutations"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "description": "Unique salutation id"
                                            },
                                            "location": {
                                                "type": "string",
                                                "description": "API resource location"
                                            },
                                            "lang": {
                                                "type": "integer",
                                                "description": "Language id"
                                            },
                                            "name": {
                                                "type": "string",
                                                "description": "Salutation name"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "/private/salutations/1",
                                        "lang": 1,
                                        "name": "Mr."
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Kundenanreden abrufen.",
                "description": "Liefert Daten fuer mehrere Kundenanreden.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSalutationsPrivate",
                "parameters": [
                    {
                        "name": "lang",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Sprach-ID"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "salutations.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "salutations.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "salutations"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Kundenanrede erstellen.",
                "description": "Erstellt eine Kundenanrede.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostSalutationsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "lang": {
                                        "type": "integer",
                                        "description": "Language id"
                                    },
                                    "name": {
                                        "type": "string",
                                        "description": "Salutation name"
                                    }
                                }
                            },
                            "example": {
                                "lang": 1,
                                "name": "Mr."
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "salutations.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "salutations.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/salutations/{id}": {
            "get": {
                "tags": [
                    "salutations"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Unique salutation id"
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API resource location"
                                        },
                                        "lang": {
                                            "type": "integer",
                                            "description": "Language id"
                                        },
                                        "name": {
                                            "type": "string",
                                            "description": "Salutation name"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "/private/salutations/1",
                                    "lang": 1,
                                    "name": "Mr."
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Kundenanrede abrufen.",
                "description": "Liefert Daten zu einer Kundenanrede.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSalutationsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Kundenanrede-ID"
                    },
                    {
                        "name": "lang",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Sprach-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "salutations.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "salutations.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "salutations"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Kundenanrede aktualisieren.",
                "description": "Aktualisiert eine Kundenanrede.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutSalutationsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Kundenanrede-ID"
                    },
                    {
                        "name": "lang",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Sprach-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "lang": {
                                        "type": "integer",
                                        "description": "Language id"
                                    },
                                    "name": {
                                        "type": "string",
                                        "description": "Salutation name"
                                    }
                                }
                            },
                            "example": {
                                "name": "Mr."
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "salutations.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "salutations.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "salutations"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Kundenanrede loeschen.",
                "description": "Loescht eine Kundenanrede in allen Sprachen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteSalutationsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Kundenanrede-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "salutations.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "salutations.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/salutations/search": {
            "get": {
                "tags": [
                    "salutations"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "description": "Unique salutation id"
                                            },
                                            "location": {
                                                "type": "string",
                                                "description": "API resource location"
                                            },
                                            "lang": {
                                                "type": "integer",
                                                "description": "Language id"
                                            },
                                            "name": {
                                                "type": "string",
                                                "description": "Salutation name"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "/private/salutations/1",
                                        "lang": 1,
                                        "name": "Mr."
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Kundenanreden nach einem String.",
                "description": "Sucht in Kundenanreden nach Bezeichnung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSalutationsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    },
                    {
                        "name": "lang",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Sprach-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "salutations.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "salutations.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/searchstatslogs": {
            "get": {
                "tags": [
                    "searchstatslogs"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Suchstatistik-Logeintraege abrufen",
                "description": "Gibt Suchstatistik-Logeintraege zurueck. Die Backend-UI listet und leert Suchstatistiken nur gesammelt, deshalb ist dieser Controller read-only.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSearchstatslogsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Session- und Referrerdetails ausgeben."
                    },
                    {
                        "name": "multishop_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Multishop filtern."
                    },
                    {
                        "name": "string",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Suchbegriff filtern."
                    },
                    {
                        "name": "device",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Geraetetyp filtern."
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Suchtyp filtern."
                    },
                    {
                        "name": "session_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Session-ID filtern."
                    },
                    {
                        "name": "referrer",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Referrer filtern."
                    },
                    {
                        "name": "min_hits",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach minimaler Trefferanzahl filtern."
                    },
                    {
                        "name": "max_hits",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach maximaler Trefferanzahl filtern."
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Startdatum im Format YYYY-MM-DD filtern."
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Enddatum im Format YYYY-MM-DD filtern."
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    },
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/searchstatslogs/{id}": {
            "get": {
                "tags": [
                    "searchstatslogs"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Suchstatistik-Logeintrag abrufen",
                "description": "Gibt einen einzelnen Suchstatistik-Logeintrag zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSearchstatslogsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/searchstatslogs/search": {
            "get": {
                "tags": [
                    "searchstatslogs"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Listenantwort fuer Suchstatistik-Logeintraege.",
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "description": "ID des Multishops."
                                                    },
                                                    "search_string": {
                                                        "type": "string",
                                                        "description": "Feld `search_string` des Datensatzes."
                                                    },
                                                    "created_at": {
                                                        "type": "string",
                                                        "description": "Erstellungszeitpunkt des Datensatzes."
                                                    },
                                                    "result_count": {
                                                        "type": "integer",
                                                        "description": "Feld `result_count` des Datensatzes."
                                                    },
                                                    "device": {
                                                        "type": "string",
                                                        "description": "Geraetetyp."
                                                    },
                                                    "type": {
                                                        "type": "string",
                                                        "description": "Interner Typwert."
                                                    },
                                                    "session_id": {
                                                        "type": "string",
                                                        "description": "Session-ID."
                                                    },
                                                    "referrer": {
                                                        "type": "string",
                                                        "description": "Referrer-URL oder Referrer-Wert."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "meta": {
                                            "type": "object",
                                            "properties": {
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Gesamtanzahl der passenden Datensaetze."
                                                },
                                                "limit": {
                                                    "type": "integer",
                                                    "description": "Verwendetes Limit."
                                                },
                                                "offset": {
                                                    "type": "integer",
                                                    "description": "Verwendeter Offset."
                                                }
                                            },
                                            "description": "Metadaten zur Listenabfrage."
                                        }
                                    }
                                },
                                "example": {
                                    "request": {
                                        "method": "GET",
                                        "path": "/api/v2/private/searchstatslogs?limit=2&details=false"
                                    },
                                    "response": {
                                        "status": "ok",
                                        "data": [
                                            {
                                                "id": 101,
                                                "location": "https://example.test/api/v2/private/searchstatslogs/101",
                                                "multishop_id": 1,
                                                "search_string": "schuhe",
                                                "created_at": "2026-06-12 10:30:00",
                                                "result_count": 12,
                                                "device": "desktop",
                                                "type": "search"
                                            }
                                        ],
                                        "meta": {
                                            "total": 1,
                                            "limit": 2,
                                            "offset": 0
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Suchstatistik-Logeintraege suchen",
                "description": "Sucht Suchstatistik-Logeintraege nach Suchbegriff, Referrer oder Session-ID.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSearchstatslogsSearchPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/searchstatslogs/summary": {
            "get": {
                "tags": [
                    "searchstatslogs"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Suchstatistik zusammenfassen",
                "description": "Gibt gruppierte Suchbegriffe wie in der Backend-Statistiktabelle zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSearchstatslogsSummaryPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/securityiprules": {
            "get": {
                "tags": [
                    "securityiprules"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/securityiprules/1"
                                                    },
                                                    "ip": {
                                                        "type": "string",
                                                        "example": "192.168.1.10"
                                                    },
                                                    "rule_type": {
                                                        "type": "string",
                                                        "example": "allow"
                                                    },
                                                    "reason": {
                                                        "type": "string",
                                                        "example": "Office IP"
                                                    },
                                                    "active": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "note": {
                                                        "type": "string",
                                                        "example": "Manual allow rule"
                                                    },
                                                    "created_at": {
                                                        "type": "string",
                                                        "example": "2026-06-12 10:25:00"
                                                    },
                                                    "created_by": {
                                                        "type": "string",
                                                        "example": "api"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/securityiprules/1",
                                            "ip": "192.168.1.10",
                                            "rule_type": "allow",
                                            "reason": "Office IP",
                                            "active": 1,
                                            "note": "Manual allow rule",
                                            "created_at": "2026-06-12 10:25:00",
                                            "created_by": "api"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Securityiprules abrufen.",
                "description": "Liefert eine paginierte Liste fuer Securityiprules.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetSecurityiprulesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "securityiprules"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/securityiprules/1"
                                                },
                                                "ip": {
                                                    "type": "string",
                                                    "example": "192.168.1.10"
                                                },
                                                "rule_type": {
                                                    "type": "string",
                                                    "example": "allow"
                                                },
                                                "reason": {
                                                    "type": "string",
                                                    "example": "Office IP"
                                                },
                                                "active": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "note": {
                                                    "type": "string",
                                                    "example": "Manual allow rule"
                                                },
                                                "created_at": {
                                                    "type": "string",
                                                    "example": "2026-06-12 10:25:00"
                                                },
                                                "created_by": {
                                                    "type": "string",
                                                    "example": "api"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "ip": "192.168.1.10",
                                    "rule_type": "allow",
                                    "reason": "Office IP",
                                    "note": "Manual allow rule",
                                    "active": 1
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Securityiprules anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Securityiprules.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostSecurityiprulesPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "ip"
                                ],
                                "properties": {
                                    "ip": {
                                        "type": "string",
                                        "example": "192.168.1.10"
                                    },
                                    "rule_type": {
                                        "type": "string",
                                        "example": "allow"
                                    },
                                    "reason": {
                                        "type": "string",
                                        "example": "Office IP"
                                    },
                                    "note": {
                                        "type": "string",
                                        "example": "Manual allow rule"
                                    },
                                    "active": {
                                        "type": "integer",
                                        "example": 1
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/securityiprules/{id}": {
            "get": {
                "tags": [
                    "securityiprules"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/securityiprules/1"
                                                },
                                                "ip": {
                                                    "type": "string",
                                                    "example": "192.168.1.10"
                                                },
                                                "rule_type": {
                                                    "type": "string",
                                                    "example": "allow"
                                                },
                                                "reason": {
                                                    "type": "string",
                                                    "example": "Office IP"
                                                },
                                                "active": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "note": {
                                                    "type": "string",
                                                    "example": "Manual allow rule"
                                                },
                                                "created_at": {
                                                    "type": "string",
                                                    "example": "2026-06-12 10:25:00"
                                                },
                                                "created_by": {
                                                    "type": "string",
                                                    "example": "api"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/securityiprules/1",
                                        "ip": "192.168.1.10",
                                        "rule_type": "allow",
                                        "reason": "Office IP",
                                        "active": 1,
                                        "note": "Manual allow rule",
                                        "created_at": "2026-06-12 10:25:00",
                                        "created_by": "api"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Securityiprules Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Securityiprules.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetSecurityiprulesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "securityiprules"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/securityiprules/1"
                                                },
                                                "ip": {
                                                    "type": "string",
                                                    "example": "192.168.1.10"
                                                },
                                                "rule_type": {
                                                    "type": "string",
                                                    "example": "allow"
                                                },
                                                "reason": {
                                                    "type": "string",
                                                    "example": "Office IP"
                                                },
                                                "active": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "note": {
                                                    "type": "string",
                                                    "example": "Manual allow rule"
                                                },
                                                "created_at": {
                                                    "type": "string",
                                                    "example": "2026-06-12 10:25:00"
                                                },
                                                "created_by": {
                                                    "type": "string",
                                                    "example": "api"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "ip": "192.168.1.10",
                                    "rule_type": "allow",
                                    "reason": "Office IP",
                                    "note": "Manual allow rule",
                                    "active": 1
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Securityiprules aktualisieren.",
                "description": "Schreibt die uebergebenen Felder fuer Securityiprules.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutSecurityiprulesDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "ip"
                                ],
                                "properties": {
                                    "ip": {
                                        "type": "string",
                                        "example": "192.168.1.10"
                                    },
                                    "rule_type": {
                                        "type": "string",
                                        "example": "allow"
                                    },
                                    "reason": {
                                        "type": "string",
                                        "example": "Office IP"
                                    },
                                    "note": {
                                        "type": "string",
                                        "example": "Manual allow rule"
                                    },
                                    "active": {
                                        "type": "integer",
                                        "example": 1
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "securityiprules"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Securityiprules loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Securityiprules.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteSecurityiprulesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/securityiprules/search": {
            "get": {
                "tags": [
                    "securityiprules"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/securityiprules/1"
                                                    },
                                                    "ip": {
                                                        "type": "string",
                                                        "example": "192.168.1.10"
                                                    },
                                                    "rule_type": {
                                                        "type": "string",
                                                        "example": "allow"
                                                    },
                                                    "reason": {
                                                        "type": "string",
                                                        "example": "Office IP"
                                                    },
                                                    "active": {
                                                        "type": "integer",
                                                        "example": 1
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/securityiprules/1",
                                            "ip": "192.168.1.10",
                                            "rule_type": "allow",
                                            "reason": "Office IP",
                                            "active": 1
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Securityiprules suchen.",
                "description": "Sucht Datensaetze fuer Securityiprules anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetSecurityiprulesSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/shippinggroups": {
            "get": {
                "tags": [
                    "shippinggroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "name": {
                                                "type": "string"
                                            },
                                            "costs": {
                                                "type": "number"
                                            },
                                            "free_from": {
                                                "type": "number"
                                            },
                                            "active": {
                                                "type": "boolean"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/shippinggroups/1",
                                        "name": "Standard",
                                        "costs": 0,
                                        "free_from": 0,
                                        "active": true
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Versandgruppen abrufen.",
                "description": "Liefert Daten fuer mehrere Versandgruppen. Schreibaktionen sind bewusst nicht Teil dieses Controllers, weil Versandgruppen Kosten je Versandzone und Berechnungslogik enthalten.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetShippinggroupsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "active": {
                                    "type": "integer"
                                }
                            }
                        },
                        "description": "Filtert nach Bezeichnung oder Status"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "shippinggroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "shippinggroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/shippinggroups/{id}": {
            "get": {
                "tags": [
                    "shippinggroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "name_with_infos": {
                                            "type": "string"
                                        },
                                        "costs": {
                                            "type": "number"
                                        },
                                        "free_from": {
                                            "type": "number"
                                        },
                                        "calculation_method": {
                                            "type": "integer"
                                        },
                                        "position_method": {
                                            "type": "integer"
                                        },
                                        "active": {
                                            "type": "boolean"
                                        },
                                        "zone_costs": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "zone_id": {
                                                        "type": "integer"
                                                    },
                                                    "zone_name": {
                                                        "type": "string"
                                                    },
                                                    "zone_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "uri"
                                                    },
                                                    "costs": {
                                                        "type": "number"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/shippinggroups/1",
                                    "name": "Standard",
                                    "name_with_infos": "Standard",
                                    "costs": 0,
                                    "free_from": 0,
                                    "calculation_method": 0,
                                    "position_method": 0,
                                    "active": true,
                                    "zone_costs": [
                                        {
                                            "zone_id": 1,
                                            "zone_name": "Deutschland",
                                            "zone_location": "https://localhost/shop/api/v2/private/shippingzones/1",
                                            "costs": 0
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Versandgruppe abrufen.",
                "description": "Liefert Daten zu einer Versandgruppe inklusive Kosten je Versandzone.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetShippinggroupsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Versandgruppen-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "shippinggroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "shippinggroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/shippinggroups/search": {
            "get": {
                "tags": [
                    "shippinggroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "name_with_infos": {
                                            "type": "string"
                                        },
                                        "costs": {
                                            "type": "number"
                                        },
                                        "free_from": {
                                            "type": "number"
                                        },
                                        "calculation_method": {
                                            "type": "integer"
                                        },
                                        "position_method": {
                                            "type": "integer"
                                        },
                                        "active": {
                                            "type": "boolean"
                                        },
                                        "zone_costs": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "zone_id": {
                                                        "type": "integer"
                                                    },
                                                    "zone_name": {
                                                        "type": "string"
                                                    },
                                                    "zone_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "uri"
                                                    },
                                                    "costs": {
                                                        "type": "number"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/shippinggroups/1",
                                    "name": "Standard",
                                    "name_with_infos": "Standard",
                                    "costs": 0,
                                    "free_from": 0,
                                    "calculation_method": 0,
                                    "position_method": 0,
                                    "active": true,
                                    "zone_costs": [
                                        {
                                            "zone_id": 1,
                                            "zone_name": "Deutschland",
                                            "zone_location": "https://localhost/shop/api/v2/private/shippingzones/1",
                                            "costs": 0
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Versandgruppen nach einem String.",
                "description": "Sucht in Versandgruppen nach Bezeichnung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetShippinggroupsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "shippinggroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "shippinggroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/shippinglabels": {
            "get": {
                "tags": [
                    "shippinglabels"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "ticketnr": {
                                                        "type": "string",
                                                        "description": "Ticket- oder Labelnummer."
                                                    },
                                                    "order_id": {
                                                        "type": "integer",
                                                        "description": "ID der Bestellung."
                                                    },
                                                    "order_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "API-URL zur Bestellung."
                                                    },
                                                    "extern_id": {
                                                        "type": "string",
                                                        "description": "Externe ID des Versandlabels."
                                                    },
                                                    "transport_service": {
                                                        "type": "string",
                                                        "description": "Versanddienstleister."
                                                    },
                                                    "created_at": {
                                                        "type": "integer",
                                                        "description": "Erstellungszeitpunkt des Datensatzes."
                                                    },
                                                    "created_at_formatted": {
                                                        "type": "string",
                                                        "description": "Feld `created_at_formatted` des Datensatzes."
                                                    },
                                                    "filetype": {
                                                        "type": "string",
                                                        "description": "Feld `filetype` des Datensatzes."
                                                    },
                                                    "encode": {
                                                        "type": "string",
                                                        "description": "Feld `encode` des Datensatzes."
                                                    },
                                                    "has_document": {
                                                        "type": "boolean",
                                                        "description": "Feld `has_document` des Datensatzes."
                                                    },
                                                    "filetype2": {
                                                        "type": "string",
                                                        "description": "Feld `filetype2` des Datensatzes."
                                                    },
                                                    "encode2": {
                                                        "type": "string",
                                                        "description": "Feld `encode2` des Datensatzes."
                                                    },
                                                    "has_document2": {
                                                        "type": "boolean",
                                                        "description": "Feld `has_document2` des Datensatzes."
                                                    },
                                                    "ticket": {
                                                        "type": "string",
                                                        "description": "Feld `ticket` des Datensatzes."
                                                    },
                                                    "ticket2": {
                                                        "type": "string",
                                                        "description": "Feld `ticket2` des Datensatzes."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Shippinglabels."
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Versandlabels abrufen",
                "description": "Gibt erzeugte Versandlabels zurueck. Label-Dokumentinhalte werden nur mit details=true ausgegeben.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetShippinglabelsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Kodierte Label-Dokumentinhalte ausgeben."
                    },
                    {
                        "name": "transport_service",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Versanddienstleister filtern."
                    },
                    {
                        "name": "order_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Bestellung filtern."
                    },
                    {
                        "name": "ticketnr",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Ticketnummer filtern."
                    },
                    {
                        "name": "extern_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach externer ID filtern."
                    },
                    {
                        "name": "created_from",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach minimalem Unix-Zeitstempel filtern."
                    },
                    {
                        "name": "created_to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach maximalem Unix-Zeitstempel filtern."
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "shippinglabels.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "shippinglabels.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/shippinglabels/{id}": {
            "get": {
                "tags": [
                    "shippinglabels"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Interne ID des Datensatzes."
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API-URL zur Detailansicht des Datensatzes."
                                        },
                                        "ticketnr": {
                                            "type": "string",
                                            "description": "Ticket- oder Labelnummer."
                                        },
                                        "order_id": {
                                            "type": "integer",
                                            "description": "ID der Bestellung."
                                        },
                                        "order_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "description": "API-URL zur Bestellung."
                                        },
                                        "extern_id": {
                                            "type": "string",
                                            "description": "Externe ID des Versandlabels."
                                        },
                                        "transport_service": {
                                            "type": "string",
                                            "description": "Versanddienstleister."
                                        },
                                        "created_at": {
                                            "type": "integer",
                                            "description": "Erstellungszeitpunkt des Datensatzes."
                                        },
                                        "created_at_formatted": {
                                            "type": "string",
                                            "description": "Feld `created_at_formatted` des Datensatzes."
                                        },
                                        "filetype": {
                                            "type": "string",
                                            "description": "Feld `filetype` des Datensatzes."
                                        },
                                        "encode": {
                                            "type": "string",
                                            "description": "Feld `encode` des Datensatzes."
                                        },
                                        "has_document": {
                                            "type": "boolean",
                                            "description": "Feld `has_document` des Datensatzes."
                                        },
                                        "filetype2": {
                                            "type": "string",
                                            "description": "Feld `filetype2` des Datensatzes."
                                        },
                                        "encode2": {
                                            "type": "string",
                                            "description": "Feld `encode2` des Datensatzes."
                                        },
                                        "has_document2": {
                                            "type": "boolean",
                                            "description": "Feld `has_document2` des Datensatzes."
                                        },
                                        "ticket": {
                                            "type": "string",
                                            "description": "Feld `ticket` des Datensatzes."
                                        },
                                        "ticket2": {
                                            "type": "string",
                                            "description": "Feld `ticket2` des Datensatzes."
                                        }
                                    },
                                    "description": "Schema fuer Shippinglabels."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/private/shippinglabels/1",
                                            "ticketnr": "IN123",
                                            "order_id": 123,
                                            "order_location": "/private/orders/123",
                                            "extern_id": "EXT-123",
                                            "transport_service": "Intex",
                                            "created_at": 1760000000,
                                            "created_at_formatted": "09.10.2025 10:00:00",
                                            "filetype": "pdf",
                                            "encode": "b64",
                                            "has_document": true,
                                            "filetype2": "",
                                            "encode2": "",
                                            "has_document2": false
                                        }
                                    ],
                                    "meta": {
                                        "total": 1,
                                        "limit": 100,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Versandlabel abrufen",
                "description": "Gibt ein einzelnes Versandlabel zurueck.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetShippinglabelsDetailPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "shippinglabels.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "shippinglabels.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/shippinglabels/search": {
            "get": {
                "tags": [
                    "shippinglabels"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "ticketnr": {
                                                        "type": "string",
                                                        "description": "Ticket- oder Labelnummer."
                                                    },
                                                    "order_id": {
                                                        "type": "integer",
                                                        "description": "ID der Bestellung."
                                                    },
                                                    "order_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "API-URL zur Bestellung."
                                                    },
                                                    "extern_id": {
                                                        "type": "string",
                                                        "description": "Externe ID des Versandlabels."
                                                    },
                                                    "transport_service": {
                                                        "type": "string",
                                                        "description": "Versanddienstleister."
                                                    },
                                                    "created_at": {
                                                        "type": "integer",
                                                        "description": "Erstellungszeitpunkt des Datensatzes."
                                                    },
                                                    "created_at_formatted": {
                                                        "type": "string",
                                                        "description": "Feld `created_at_formatted` des Datensatzes."
                                                    },
                                                    "filetype": {
                                                        "type": "string",
                                                        "description": "Feld `filetype` des Datensatzes."
                                                    },
                                                    "encode": {
                                                        "type": "string",
                                                        "description": "Feld `encode` des Datensatzes."
                                                    },
                                                    "has_document": {
                                                        "type": "boolean",
                                                        "description": "Feld `has_document` des Datensatzes."
                                                    },
                                                    "filetype2": {
                                                        "type": "string",
                                                        "description": "Feld `filetype2` des Datensatzes."
                                                    },
                                                    "encode2": {
                                                        "type": "string",
                                                        "description": "Feld `encode2` des Datensatzes."
                                                    },
                                                    "has_document2": {
                                                        "type": "boolean",
                                                        "description": "Feld `has_document2` des Datensatzes."
                                                    },
                                                    "ticket": {
                                                        "type": "string",
                                                        "description": "Feld `ticket` des Datensatzes."
                                                    },
                                                    "ticket2": {
                                                        "type": "string",
                                                        "description": "Feld `ticket2` des Datensatzes."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Shippinglabels."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/private/shippinglabels/1",
                                            "ticketnr": "IN123",
                                            "order_id": 123,
                                            "transport_service": "Intex",
                                            "created_at": 1760000000,
                                            "has_document": true,
                                            "has_document2": false
                                        }
                                    ],
                                    "meta": {
                                        "total": 1,
                                        "limit": 100,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Versandlabels suchen",
                "description": "Sucht Versandlabels nach Versanddienstleister, Bestellung, Ticketnummer oder externer ID.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetShippinglabelsSearchPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "shippinglabels.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "shippinglabels.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/shippinglists": {
            "get": {
                "tags": [
                    "shippinglists"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "name": {
                                                "type": "string"
                                            },
                                            "status_ids": {
                                                "type": "array",
                                                "items": {
                                                    "type": "integer"
                                                }
                                            },
                                            "selected_depot_id": {
                                                "type": "integer"
                                            },
                                            "order_count": {
                                                "type": "integer"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/shippinglists/1",
                                        "name": "Express",
                                        "status_ids": [
                                            1,
                                            3
                                        ],
                                        "selected_depot_id": 1,
                                        "order_count": 4
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Versandlisten abrufen.",
                "description": "Liefert Daten fuer mehrere Versandlisten. Schreibaktionen sind bewusst nicht Teil dieses Controllers, weil Versandlisten Versandprozesse, Dokumentstapel und Bestellzuordnungen steuern.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetShippinglistsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "selected_depot_id": {
                                    "type": "integer"
                                }
                            }
                        },
                        "description": "Filtert nach Bezeichnung oder Depot"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "shippinglists.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "shippinglists.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/shippinglists/{id}": {
            "get": {
                "tags": [
                    "shippinglists"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "is_default": {
                                            "type": "boolean"
                                        },
                                        "status_ids": {
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            }
                                        },
                                        "statuses": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "status_id": {
                                                        "type": "integer"
                                                    },
                                                    "status_name": {
                                                        "type": "string"
                                                    },
                                                    "status_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "uri"
                                                    }
                                                }
                                            }
                                        },
                                        "sort_descending": {
                                            "type": "boolean"
                                        },
                                        "show_bill": {
                                            "type": "boolean"
                                        },
                                        "hide_not_shippable_orders": {
                                            "type": "boolean"
                                        },
                                        "hide_part_shippable_orders": {
                                            "type": "boolean"
                                        },
                                        "selected_depot_id": {
                                            "type": "integer"
                                        },
                                        "selected_depot_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "show_address_lists": {
                                            "type": "boolean"
                                        },
                                        "order_count": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/shippinglists/1",
                                    "name": "Express",
                                    "is_default": false,
                                    "status_ids": [
                                        1,
                                        3
                                    ],
                                    "statuses": [
                                        {
                                            "status_id": 1,
                                            "status_name": "offen",
                                            "status_location": "https://localhost/shop/api/v2/private/orderstatuses/1"
                                        }
                                    ],
                                    "sort_descending": false,
                                    "show_bill": true,
                                    "hide_not_shippable_orders": false,
                                    "hide_part_shippable_orders": false,
                                    "selected_depot_id": 1,
                                    "selected_depot_location": "https://localhost/shop/api/v2/private/depots/1",
                                    "show_address_lists": false,
                                    "order_count": 4
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Versandliste abrufen.",
                "description": "Liefert Daten zu einer Versandliste inklusive Statusfiltern und Bestellanzahl. Die Standardliste kann mit ID 0 abgefragt werden.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetShippinglistsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Versandlisten-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "shippinglists.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "shippinglists.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/shippinglists/search": {
            "get": {
                "tags": [
                    "shippinglists"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "is_default": {
                                            "type": "boolean"
                                        },
                                        "status_ids": {
                                            "type": "array",
                                            "items": {
                                                "type": "integer"
                                            }
                                        },
                                        "statuses": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "status_id": {
                                                        "type": "integer"
                                                    },
                                                    "status_name": {
                                                        "type": "string"
                                                    },
                                                    "status_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "uri"
                                                    }
                                                }
                                            }
                                        },
                                        "sort_descending": {
                                            "type": "boolean"
                                        },
                                        "show_bill": {
                                            "type": "boolean"
                                        },
                                        "hide_not_shippable_orders": {
                                            "type": "boolean"
                                        },
                                        "hide_part_shippable_orders": {
                                            "type": "boolean"
                                        },
                                        "selected_depot_id": {
                                            "type": "integer"
                                        },
                                        "selected_depot_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "show_address_lists": {
                                            "type": "boolean"
                                        },
                                        "order_count": {
                                            "type": "integer"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/shippinglists/1",
                                    "name": "Express",
                                    "is_default": false,
                                    "status_ids": [
                                        1,
                                        3
                                    ],
                                    "statuses": [
                                        {
                                            "status_id": 1,
                                            "status_name": "offen",
                                            "status_location": "https://localhost/shop/api/v2/private/orderstatuses/1"
                                        }
                                    ],
                                    "sort_descending": false,
                                    "show_bill": true,
                                    "hide_not_shippable_orders": false,
                                    "hide_part_shippable_orders": false,
                                    "selected_depot_id": 1,
                                    "selected_depot_location": "https://localhost/shop/api/v2/private/depots/1",
                                    "show_address_lists": false,
                                    "order_count": 4
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Versandlisten nach einem String.",
                "description": "Sucht in Versandlisten nach Bezeichnung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetShippinglistsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "shippinglists.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "shippinglists.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/shippingtypes": {
            "get": {
                "tags": [
                    "shippingtypes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "name": {
                                                "type": "string"
                                            },
                                            "internal_name": {
                                                "type": "string"
                                            },
                                            "backend_name": {
                                                "type": "string"
                                            },
                                            "active": {
                                                "type": "boolean"
                                            },
                                            "sort_order": {
                                                "type": "integer"
                                            },
                                            "carrier": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/shippingtypes/1",
                                        "name": "DHL Paket",
                                        "internal_name": "DHL",
                                        "backend_name": "DHL",
                                        "active": true,
                                        "sort_order": 10,
                                        "carrier": "dhl"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Versandarten abrufen.",
                "description": "Liefert Daten fuer mehrere Versandarten. Schreibaktionen sind bewusst nicht Teil dieses Controllers, weil Versandarten Kostenstaffeln, Versandzonen, Kundengruppen, Zahlungsarten und Transportdienst-Daten verwalten.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetShippingtypesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                },
                                "internal_name": {
                                    "type": "string"
                                },
                                "active": {
                                    "type": "boolean"
                                },
                                "carrier": {
                                    "type": "string"
                                },
                                "only_purchase": {
                                    "type": "boolean"
                                }
                            }
                        },
                        "description": "Filtert nach Bezeichnung, interner Bezeichnung, Status oder Transportdienst"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "shippingtypes.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "shippingtypes.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/shippingtypes/{id}": {
            "get": {
                "tags": [
                    "shippingtypes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "internal_name": {
                                            "type": "string"
                                        },
                                        "backend_name": {
                                            "type": "string"
                                        },
                                        "structure_type_id": {
                                            "type": "integer"
                                        },
                                        "structure_type_name": {
                                            "type": "string"
                                        },
                                        "active": {
                                            "type": "boolean"
                                        },
                                        "sort_order": {
                                            "type": "integer"
                                        },
                                        "tax_id": {
                                            "type": "integer"
                                        },
                                        "tax_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "color": {
                                            "type": "string"
                                        },
                                        "carrier": {
                                            "type": "string"
                                        },
                                        "free_from": {
                                            "type": "number"
                                        },
                                        "ignore_zone_free_from": {
                                            "type": "boolean"
                                        },
                                        "only_purchase": {
                                            "type": "boolean"
                                        },
                                        "percentage_costs": {
                                            "type": "boolean"
                                        },
                                        "exclude_preview": {
                                            "type": "boolean"
                                        },
                                        "shipping_list_id": {
                                            "type": "integer"
                                        },
                                        "shipping_list_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "orderstatus_after_send_id": {
                                            "type": "integer"
                                        },
                                        "orderstatus_after_send_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "structures": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "structure_id": {
                                                        "type": "integer"
                                                    },
                                                    "value": {
                                                        "type": "number"
                                                    },
                                                    "zone_costs": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "zone_id": {
                                                                    "type": "integer"
                                                                },
                                                                "zone_name": {
                                                                    "type": "string"
                                                                },
                                                                "zone_location": {
                                                                    "type": [
                                                                        "string",
                                                                        "null"
                                                                    ],
                                                                    "format": "uri"
                                                                },
                                                                "costs": {
                                                                    "type": "number"
                                                                },
                                                                "enabled": {
                                                                    "type": "boolean"
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "customer_groups": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "customer_group_id": {
                                                        "type": "integer"
                                                    },
                                                    "customer_group_name": {
                                                        "type": "string"
                                                    },
                                                    "customer_group_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "uri"
                                                    }
                                                }
                                            }
                                        },
                                        "payment_types": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "payment_type_id": {
                                                        "type": "integer"
                                                    },
                                                    "payment_type_name": {
                                                        "type": "string"
                                                    },
                                                    "payment_type_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "uri"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/shippingtypes/1",
                                    "name": "DHL Paket",
                                    "internal_name": "DHL",
                                    "backend_name": "DHL",
                                    "structure_type_id": 1,
                                    "structure_type_name": "Gewicht",
                                    "active": true,
                                    "sort_order": 10,
                                    "tax_id": 1,
                                    "tax_location": "https://localhost/shop/api/v2/private/taxes/1",
                                    "color": "ffffff",
                                    "carrier": "dhl",
                                    "free_from": 100,
                                    "ignore_zone_free_from": false,
                                    "only_purchase": false,
                                    "percentage_costs": false,
                                    "exclude_preview": false,
                                    "shipping_list_id": 0,
                                    "shipping_list_location": "https://localhost/shop/api/v2/private/shippinglists/1",
                                    "orderstatus_after_send_id": 0,
                                    "orderstatus_after_send_location": null,
                                    "structures": [
                                        {
                                            "structure_id": 1,
                                            "value": 5,
                                            "zone_costs": [
                                                {
                                                    "zone_id": 1,
                                                    "zone_name": "Deutschland",
                                                    "zone_location": "https://localhost/shop/api/v2/private/shippingzones/1",
                                                    "costs": 4.9,
                                                    "enabled": true
                                                }
                                            ]
                                        }
                                    ],
                                    "customer_groups": [
                                        {
                                            "customer_group_id": 1,
                                            "customer_group_name": "Standard",
                                            "customer_group_location": "https://localhost/shop/api/v2/private/customergroups/1"
                                        }
                                    ],
                                    "payment_types": [
                                        {
                                            "payment_type_id": 1,
                                            "payment_type_name": "Vorkasse",
                                            "payment_type_location": "https://localhost/shop/api/v2/private/paymenttypes/1"
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Versandart abrufen.",
                "description": "Liefert Daten zu einer Versandart inklusive Kostenstaffeln, Zonen-Kosten, Kundengruppen und Zahlungsarten.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetShippingtypesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Versandart-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "shippingtypes.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "shippingtypes.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/shippingtypes/search": {
            "get": {
                "tags": [
                    "shippingtypes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "internal_name": {
                                            "type": "string"
                                        },
                                        "backend_name": {
                                            "type": "string"
                                        },
                                        "structure_type_id": {
                                            "type": "integer"
                                        },
                                        "structure_type_name": {
                                            "type": "string"
                                        },
                                        "active": {
                                            "type": "boolean"
                                        },
                                        "sort_order": {
                                            "type": "integer"
                                        },
                                        "tax_id": {
                                            "type": "integer"
                                        },
                                        "tax_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "color": {
                                            "type": "string"
                                        },
                                        "carrier": {
                                            "type": "string"
                                        },
                                        "free_from": {
                                            "type": "number"
                                        },
                                        "ignore_zone_free_from": {
                                            "type": "boolean"
                                        },
                                        "only_purchase": {
                                            "type": "boolean"
                                        },
                                        "percentage_costs": {
                                            "type": "boolean"
                                        },
                                        "exclude_preview": {
                                            "type": "boolean"
                                        },
                                        "shipping_list_id": {
                                            "type": "integer"
                                        },
                                        "shipping_list_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "orderstatus_after_send_id": {
                                            "type": "integer"
                                        },
                                        "orderstatus_after_send_location": {
                                            "type": [
                                                "string",
                                                "null"
                                            ],
                                            "format": "uri"
                                        },
                                        "structures": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "structure_id": {
                                                        "type": "integer"
                                                    },
                                                    "value": {
                                                        "type": "number"
                                                    },
                                                    "zone_costs": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object",
                                                            "properties": {
                                                                "zone_id": {
                                                                    "type": "integer"
                                                                },
                                                                "zone_name": {
                                                                    "type": "string"
                                                                },
                                                                "zone_location": {
                                                                    "type": [
                                                                        "string",
                                                                        "null"
                                                                    ],
                                                                    "format": "uri"
                                                                },
                                                                "costs": {
                                                                    "type": "number"
                                                                },
                                                                "enabled": {
                                                                    "type": "boolean"
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        "customer_groups": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "customer_group_id": {
                                                        "type": "integer"
                                                    },
                                                    "customer_group_name": {
                                                        "type": "string"
                                                    },
                                                    "customer_group_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "uri"
                                                    }
                                                }
                                            }
                                        },
                                        "payment_types": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "payment_type_id": {
                                                        "type": "integer"
                                                    },
                                                    "payment_type_name": {
                                                        "type": "string"
                                                    },
                                                    "payment_type_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "uri"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/shippingtypes/1",
                                    "name": "DHL Paket",
                                    "internal_name": "DHL",
                                    "backend_name": "DHL",
                                    "structure_type_id": 1,
                                    "structure_type_name": "Gewicht",
                                    "active": true,
                                    "sort_order": 10,
                                    "tax_id": 1,
                                    "tax_location": "https://localhost/shop/api/v2/private/taxes/1",
                                    "color": "ffffff",
                                    "carrier": "dhl",
                                    "free_from": 100,
                                    "ignore_zone_free_from": false,
                                    "only_purchase": false,
                                    "percentage_costs": false,
                                    "exclude_preview": false,
                                    "shipping_list_id": 0,
                                    "shipping_list_location": "https://localhost/shop/api/v2/private/shippinglists/1",
                                    "orderstatus_after_send_id": 0,
                                    "orderstatus_after_send_location": null,
                                    "structures": [
                                        {
                                            "structure_id": 1,
                                            "value": 5,
                                            "zone_costs": [
                                                {
                                                    "zone_id": 1,
                                                    "zone_name": "Deutschland",
                                                    "zone_location": "https://localhost/shop/api/v2/private/shippingzones/1",
                                                    "costs": 4.9,
                                                    "enabled": true
                                                }
                                            ]
                                        }
                                    ],
                                    "customer_groups": [
                                        {
                                            "customer_group_id": 1,
                                            "customer_group_name": "Standard",
                                            "customer_group_location": "https://localhost/shop/api/v2/private/customergroups/1"
                                        }
                                    ],
                                    "payment_types": [
                                        {
                                            "payment_type_id": 1,
                                            "payment_type_name": "Vorkasse",
                                            "payment_type_location": "https://localhost/shop/api/v2/private/paymenttypes/1"
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Versandarten nach einem String.",
                "description": "Sucht in Versandarten nach Bezeichnung oder interner Bezeichnung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetShippingtypesSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "shippingtypes.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "shippingtypes.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/shippingzones": {
            "get": {
                "tags": [
                    "shippingzones"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "name": {
                                                "type": "string"
                                            },
                                            "costs": {
                                                "type": "number"
                                            },
                                            "free_from": {
                                                "type": "number"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/shippingzones/1",
                                        "name": "Deutschland",
                                        "costs": 0,
                                        "free_from": 100
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Versandzonen abrufen.",
                "description": "Liefert Daten fuer mehrere Versandzonen. Schreibaktionen sind bewusst nicht Teil dieses Controllers, weil Versandzonen Zahlungsart-Zuordnungen und Versandkostenlogik beeinflussen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetShippingzonesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "name": {
                                    "type": "string"
                                }
                            }
                        },
                        "description": "Filtert nach Bezeichnung"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "shippingzones.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "shippingzones.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/shippingzones/{id}": {
            "get": {
                "tags": [
                    "shippingzones"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "costs": {
                                            "type": "number"
                                        },
                                        "free_from": {
                                            "type": "number"
                                        },
                                        "exclude_shipping_groups_from_free_from": {
                                            "type": "boolean"
                                        },
                                        "payment_methods": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "payment_type_id": {
                                                        "type": "integer"
                                                    },
                                                    "payment_type_name": {
                                                        "type": "string"
                                                    },
                                                    "payment_type_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "uri"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/shippingzones/1",
                                    "name": "Deutschland",
                                    "costs": 0,
                                    "free_from": 100,
                                    "exclude_shipping_groups_from_free_from": false,
                                    "payment_methods": [
                                        {
                                            "payment_type_id": 1,
                                            "payment_type_name": "Vorkasse",
                                            "payment_type_location": "https://localhost/shop/api/v2/private/paymenttypes/1"
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Versandzone abrufen.",
                "description": "Liefert Daten zu einer Versandzone inklusive zugeordneter Zahlungsarten.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetShippingzonesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Versandzonen-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "shippingzones.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "shippingzones.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/shippingzones/search": {
            "get": {
                "tags": [
                    "shippingzones"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        },
                                        "costs": {
                                            "type": "number"
                                        },
                                        "free_from": {
                                            "type": "number"
                                        },
                                        "exclude_shipping_groups_from_free_from": {
                                            "type": "boolean"
                                        },
                                        "payment_methods": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "payment_type_id": {
                                                        "type": "integer"
                                                    },
                                                    "payment_type_name": {
                                                        "type": "string"
                                                    },
                                                    "payment_type_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "format": "uri"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/shippingzones/1",
                                    "name": "Deutschland",
                                    "costs": 0,
                                    "free_from": 100,
                                    "exclude_shipping_groups_from_free_from": false,
                                    "payment_methods": [
                                        {
                                            "payment_type_id": 1,
                                            "payment_type_name": "Vorkasse",
                                            "payment_type_location": "https://localhost/shop/api/v2/private/paymenttypes/1"
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Versandzonen nach einem String.",
                "description": "Sucht in Versandzonen nach Bezeichnung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetShippingzonesSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "shippingzones.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "shippingzones.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/socialassets": {
            "post": {
                "tags": [
                    "socialassets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Gespeichertes Social-Media-Bild.",
                                    "properties": {
                                        "url": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "path": {
                                            "type": "string"
                                        },
                                        "mime_type": {
                                            "type": "string"
                                        },
                                        "width": {
                                            "type": "integer"
                                        },
                                        "height": {
                                            "type": "integer"
                                        },
                                        "size": {
                                            "type": "integer",
                                            "description": "Dateigroesse in Bytes"
                                        }
                                    }
                                },
                                "example": {
                                    "url": "https://shop.local/images/social-api/2026/07/20260724-120000-a1b2c3-mehrdimensionale-varianten.png",
                                    "path": "images/social-api/2026/07/20260724-120000-a1b2c3-mehrdimensionale-varianten.png",
                                    "mime_type": "image/png",
                                    "width": 1,
                                    "height": 1,
                                    "size": 68
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Social-Media-Bild aus einem Base64-String speichern.",
                "description": "Erwartet JSON mit img (Dateiname) und stream (Base64-String oder Data-URL) und speichert das Bild unter einer oeffentlichen URL.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostSocialassetsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Base64-kodiertes Bild fuer einen Social-Media-Beitrag.",
                                "properties": {
                                    "img": {
                                        "type": "string",
                                        "description": "Original-Dateiname mit erlaubter Bildendung"
                                    },
                                    "stream": {
                                        "type": "string",
                                        "format": "byte",
                                        "description": "Base64-kodierter Bildinhalt, optional als Data-URL"
                                    }
                                },
                                "required": [
                                    "img",
                                    "stream"
                                ]
                            },
                            "example": {
                                "img": "mehrdimensionale-varianten.png",
                                "stream": "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mP8/x8AAwMCAO+/p9sAAAAASUVORK5CYII="
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "socialassets.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "socialassets.create"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/socialinsights": {
            "get": {
                "tags": [
                    "socialinsights"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "get_socialinsight.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 123,
                                        "platform": "instagram",
                                        "target_id": "1234567890",
                                        "target_name": "@apt__shop",
                                        "remote_id": "9876543210",
                                        "media_type": "VIDEO",
                                        "permalink": "https://www.instagram.com/reel/example/",
                                        "published_at": "2026-08-12 08:48:31",
                                        "insights": {
                                            "available": true,
                                            "metrics": {
                                                "views": 142,
                                                "reach": 132,
                                                "total_interactions": 1
                                            },
                                            "fetched_at": "2026-08-12T14:41:20+02:00",
                                            "error": ""
                                        }
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Social-Media-Auswertungen abrufen.",
                "description": "Liefert die beim letzten Inhaltsabgleich gespeicherten Insights. Access-Tokens und technische Meta-Rohantworten werden niemals ausgegeben.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSocialinsightsPrivate",
                "parameters": [
                    {
                        "name": "platform",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Optional facebook oder instagram."
                    },
                    {
                        "name": "available_only",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Nur Inhalte mit verfuegbaren Kennzahlen ausgeben."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximal 100 Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "socialinsights.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "socialinsights.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/socialinsights/{id}": {
            "get": {
                "tags": [
                    "socialinsights"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Gespeicherte Social-Media-Auswertung eines Inhalts.",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "platform": {
                                            "type": "string",
                                            "enum": [
                                                "facebook",
                                                "instagram"
                                            ]
                                        },
                                        "target_id": {
                                            "type": "string"
                                        },
                                        "target_name": {
                                            "type": "string"
                                        },
                                        "remote_id": {
                                            "type": "string"
                                        },
                                        "media_type": {
                                            "type": "string"
                                        },
                                        "permalink": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "published_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "insights": {
                                            "type": "object",
                                            "properties": {
                                                "available": {
                                                    "type": "boolean"
                                                },
                                                "metrics": {
                                                    "type": "object"
                                                },
                                                "fetched_at": {
                                                    "type": "string",
                                                    "format": "date-time"
                                                },
                                                "error": {
                                                    "type": "string"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "platform": "instagram",
                                    "target_id": "1234567890",
                                    "target_name": "@apt__shop",
                                    "remote_id": "9876543210",
                                    "media_type": "VIDEO",
                                    "permalink": "https://www.instagram.com/reel/example/",
                                    "published_at": "2026-08-12 08:48:31",
                                    "insights": {
                                        "available": true,
                                        "metrics": {
                                            "views": 142,
                                            "reach": 132,
                                            "total_interactions": 1,
                                            "ig_reels_avg_watch_time": 1352
                                        },
                                        "fetched_at": "2026-08-12T14:41:20+02:00",
                                        "error": ""
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Social-Media-Auswertung eines Inhalts abrufen.",
                "description": "Liefert die zuletzt gespeicherten Insights fuer einen lokalen Social-Media-Inhalt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSocialinsightsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Beitrags-ID."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "socialinsights.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "socialinsights.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/socialposts": {
            "get": {
                "tags": [
                    "socialposts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Liste lokaler Social-Media-Beitraege.",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "platform": {
                                                "type": "string",
                                                "enum": [
                                                    "facebook",
                                                    "instagram"
                                                ]
                                            },
                                            "target_id": {
                                                "type": "string"
                                            },
                                            "target_name": {
                                                "type": "string"
                                            },
                                            "remote_id": {
                                                "type": "string"
                                            },
                                            "media_type": {
                                                "type": "string"
                                            },
                                            "title": {
                                                "type": "string"
                                            },
                                            "text": {
                                                "type": "string"
                                            },
                                            "permalink": {
                                                "type": "string"
                                            },
                                            "image_url": {
                                                "type": "string"
                                            },
                                            "image_urls": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string",
                                                    "format": "uri"
                                                }
                                            },
                                            "video_url": {
                                                "type": "string"
                                            },
                                            "targets": {
                                                "type": "object",
                                                "description": "Ausgewaehlte Ziele pro Plattform; niemals mit Access-Token"
                                            },
                                            "source_type": {
                                                "type": "string"
                                            },
                                            "source_id": {
                                                "type": "integer"
                                            },
                                            "status": {
                                                "type": "string",
                                                "enum": [
                                                    "draft",
                                                    "planned",
                                                    "published",
                                                    "deleted"
                                                ]
                                            },
                                            "scheduled_at": {
                                                "type": "string",
                                                "format": "date-time",
                                                "nullable": true
                                            },
                                            "published_at": {
                                                "type": "string",
                                                "format": "date-time",
                                                "nullable": true
                                            },
                                            "created_at": {
                                                "type": "string",
                                                "format": "date-time"
                                            },
                                            "updated_at": {
                                                "type": "string",
                                                "format": "date-time"
                                            },
                                            "last_error": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 101,
                                        "location": "https://shop.local/api/v2/private/socialposts/101",
                                        "platform": "instagram",
                                        "target_id": "",
                                        "target_name": "",
                                        "remote_id": "draft:101",
                                        "media_type": "draft",
                                        "title": "Mehrdimensionale Varianten",
                                        "text": "Mehr Auswahl, klar strukturiert: mehrdimensionale Varianten im apt-shop.",
                                        "permalink": "",
                                        "image_url": "https://shop.local/images/social-api/2026/07/mehrdimensionale-varianten.webp",
                                        "image_urls": [
                                            "https://shop.local/images/social-api/2026/07/mehrdimensionale-varianten.webp"
                                        ],
                                        "video_url": "",
                                        "cover_url": "",
                                        "targets": {
                                            "facebook": [],
                                            "instagram": [
                                                {
                                                    "id": "17841400000000000",
                                                    "username": "apt-shop",
                                                    "is_default": true
                                                }
                                            ]
                                        },
                                        "source_type": "feature",
                                        "source_id": 42,
                                        "status": "draft",
                                        "scheduled_at": null,
                                        "published_at": null,
                                        "created_at": "2026-07-24 12:00:00",
                                        "updated_at": "2026-07-24 12:00:00",
                                        "last_error": ""
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Social-Media-Beitraege abrufen.",
                "description": "Liefert lokale Entwuerfe, geplante und bereits veroeffentlichte Meta-Beitraege.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSocialpostsPrivate",
                "parameters": [
                    {
                        "name": "platform",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Optional facebook oder instagram."
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Optional draft, planned, published oder deleted."
                    },
                    {
                        "name": "source_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Optional technische Herkunft des Beitrags."
                    },
                    {
                        "name": "include_deleted",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Geloeschte lokale Beitraege mit ausgeben."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximal 100 Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "socialposts.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "socialposts.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "socialposts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Liste lokaler Social-Media-Beitraege.",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "platform": {
                                                "type": "string",
                                                "enum": [
                                                    "facebook",
                                                    "instagram"
                                                ]
                                            },
                                            "target_id": {
                                                "type": "string"
                                            },
                                            "target_name": {
                                                "type": "string"
                                            },
                                            "remote_id": {
                                                "type": "string"
                                            },
                                            "media_type": {
                                                "type": "string"
                                            },
                                            "title": {
                                                "type": "string"
                                            },
                                            "text": {
                                                "type": "string"
                                            },
                                            "permalink": {
                                                "type": "string"
                                            },
                                            "image_url": {
                                                "type": "string"
                                            },
                                            "image_urls": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string",
                                                    "format": "uri"
                                                }
                                            },
                                            "video_url": {
                                                "type": "string"
                                            },
                                            "targets": {
                                                "type": "object",
                                                "description": "Ausgewaehlte Ziele pro Plattform; niemals mit Access-Token"
                                            },
                                            "source_type": {
                                                "type": "string"
                                            },
                                            "source_id": {
                                                "type": "integer"
                                            },
                                            "status": {
                                                "type": "string",
                                                "enum": [
                                                    "draft",
                                                    "planned",
                                                    "published",
                                                    "deleted"
                                                ]
                                            },
                                            "scheduled_at": {
                                                "type": "string",
                                                "format": "date-time",
                                                "nullable": true
                                            },
                                            "published_at": {
                                                "type": "string",
                                                "format": "date-time",
                                                "nullable": true
                                            },
                                            "created_at": {
                                                "type": "string",
                                                "format": "date-time"
                                            },
                                            "updated_at": {
                                                "type": "string",
                                                "format": "date-time"
                                            },
                                            "last_error": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 101,
                                        "location": "https://shop.local/api/v2/private/socialposts/101",
                                        "platform": "instagram",
                                        "target_id": "",
                                        "target_name": "",
                                        "remote_id": "draft:101",
                                        "media_type": "draft",
                                        "title": "Mehrdimensionale Varianten",
                                        "text": "Mehr Auswahl, klar strukturiert: mehrdimensionale Varianten im apt-shop.",
                                        "permalink": "",
                                        "image_url": "https://shop.local/images/social-api/2026/07/mehrdimensionale-varianten.webp",
                                        "image_urls": [
                                            "https://shop.local/images/social-api/2026/07/mehrdimensionale-varianten.webp"
                                        ],
                                        "video_url": "",
                                        "cover_url": "",
                                        "targets": {
                                            "facebook": [],
                                            "instagram": [
                                                {
                                                    "id": "17841400000000000",
                                                    "username": "apt-shop",
                                                    "is_default": true
                                                }
                                            ]
                                        },
                                        "source_type": "feature",
                                        "source_id": 42,
                                        "status": "draft",
                                        "scheduled_at": null,
                                        "published_at": null,
                                        "created_at": "2026-07-24 12:00:00",
                                        "updated_at": "2026-07-24 12:00:00",
                                        "last_error": ""
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Social-Media-Entwurf erstellen.",
                "description": "Erstellt je ausgewaehlter Plattform einen Entwurf. Ohne targets wird das jeweilige Standardkonto verwendet.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostSocialpostsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Erstellt fuer jede ausgewaehlte Plattform einen Social-Media-Entwurf.",
                                "properties": {
                                    "title": {
                                        "type": "string",
                                        "description": "Interner Titel des Beitrags"
                                    },
                                    "text": {
                                        "description": "Gemeinsamer Beitragstext oder plattformspezifische Texte",
                                        "oneOf": [
                                            {
                                                "type": "string"
                                            },
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "facebook": {
                                                        "type": "string"
                                                    },
                                                    "instagram": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        ]
                                    },
                                    "platforms": {
                                        "type": "array",
                                        "description": "Zu erstellende Plattform-Entwuerfe",
                                        "items": {
                                            "type": "string",
                                            "enum": [
                                                "facebook",
                                                "instagram"
                                            ]
                                        }
                                    },
                                    "targets": {
                                        "type": "object",
                                        "description": "Optionale Ziel-IDs pro Plattform; ohne Angabe werden die Standardziele verwendet",
                                        "properties": {
                                            "facebook": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "instagram": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            }
                                        }
                                    },
                                    "image_urls": {
                                        "type": "array",
                                        "description": "Oeffentlich erreichbare Bild-URLs, beispielsweise aus /private/socialassets",
                                        "items": {
                                            "type": "string",
                                            "format": "uri"
                                        }
                                    },
                                    "video_url": {
                                        "type": "string",
                                        "format": "uri",
                                        "description": "Oeffentlich erreichbare Video-URL"
                                    },
                                    "cover_url": {
                                        "type": "string",
                                        "format": "uri",
                                        "description": "Optionale oeffentlich erreichbare HTTPS-Bild-URL fuer das Instagram-Reel-Cover. Ohne Cover verwendet Instagram den Videoframe bei 500 ms. Facebook ignoriert dieses Feld."
                                    },
                                    "source_type": {
                                        "type": "string",
                                        "description": "Technische Herkunft des Beitrags"
                                    },
                                    "source_id": {
                                        "type": "integer",
                                        "description": "Optionale ID des Quelldatensatzes"
                                    },
                                    "scheduled_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Optionaler zukuenftiger Veroeffentlichungszeitpunkt"
                                    }
                                },
                                "anyOf": [
                                    {
                                        "required": [
                                            "platforms"
                                        ]
                                    },
                                    {
                                        "required": [
                                            "targets"
                                        ]
                                    }
                                ]
                            },
                            "example": {
                                "title": "Mehrdimensionale Varianten",
                                "text": {
                                    "facebook": "Varianten neu gedacht: Kombiniere Groesse, Farbe und weitere Merkmale direkt im apt-shop.",
                                    "instagram": "Mehr Auswahl, klar strukturiert: mehrdimensionale Varianten im apt-shop. #ecommerce #onlineshop"
                                },
                                "platforms": [
                                    "facebook",
                                    "instagram"
                                ],
                                "targets": {
                                    "facebook": [
                                        "123456789012345"
                                    ],
                                    "instagram": [
                                        "17841400000000000"
                                    ]
                                },
                                "image_urls": [
                                    "https://shop.local/images/social-api/2026/07/mehrdimensionale-varianten.webp"
                                ],
                                "source_type": "feature",
                                "source_id": 42
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "socialposts.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "socialposts.create"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/socialposts/{id}": {
            "get": {
                "tags": [
                    "socialposts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Lokaler Social-Media-Beitrag.",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "platform": {
                                            "type": "string",
                                            "enum": [
                                                "facebook",
                                                "instagram"
                                            ]
                                        },
                                        "target_id": {
                                            "type": "string"
                                        },
                                        "target_name": {
                                            "type": "string"
                                        },
                                        "remote_id": {
                                            "type": "string"
                                        },
                                        "media_type": {
                                            "type": "string"
                                        },
                                        "title": {
                                            "type": "string"
                                        },
                                        "text": {
                                            "type": "string"
                                        },
                                        "permalink": {
                                            "type": "string"
                                        },
                                        "image_url": {
                                            "type": "string"
                                        },
                                        "image_urls": {
                                            "type": "array",
                                            "items": {
                                                "type": "string",
                                                "format": "uri"
                                            }
                                        },
                                        "video_url": {
                                            "type": "string"
                                        },
                                        "cover_url": {
                                            "type": "string",
                                            "description": "Optionale Instagram-Reel-Cover-URL"
                                        },
                                        "targets": {
                                            "type": "object",
                                            "description": "Ausgewaehlte Ziele pro Plattform; niemals mit Access-Token"
                                        },
                                        "source_type": {
                                            "type": "string"
                                        },
                                        "source_id": {
                                            "type": "integer"
                                        },
                                        "status": {
                                            "type": "string",
                                            "enum": [
                                                "draft",
                                                "planned",
                                                "published",
                                                "deleted"
                                            ]
                                        },
                                        "scheduled_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "published_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "last_error": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 101,
                                    "location": "https://shop.local/api/v2/private/socialposts/101",
                                    "platform": "instagram",
                                    "target_id": "",
                                    "target_name": "",
                                    "remote_id": "draft:101",
                                    "media_type": "draft",
                                    "title": "Mehrdimensionale Varianten",
                                    "text": "Mehr Auswahl, klar strukturiert: mehrdimensionale Varianten im apt-shop.",
                                    "permalink": "",
                                    "image_url": "https://shop.local/images/social-api/2026/07/mehrdimensionale-varianten.webp",
                                    "image_urls": [
                                        "https://shop.local/images/social-api/2026/07/mehrdimensionale-varianten.webp"
                                    ],
                                    "video_url": "",
                                    "cover_url": "",
                                    "targets": {
                                        "facebook": [],
                                        "instagram": [
                                            {
                                                "id": "17841400000000000",
                                                "username": "apt-shop",
                                                "is_default": true
                                            }
                                        ]
                                    },
                                    "source_type": "feature",
                                    "source_id": 42,
                                    "status": "draft",
                                    "scheduled_at": null,
                                    "published_at": null,
                                    "created_at": "2026-07-24 12:00:00",
                                    "updated_at": "2026-07-24 12:00:00",
                                    "last_error": ""
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Social-Media-Beitrag abrufen.",
                "description": "Liefert einen lokalen Meta-Beitrag mit Medien, Zielen und Status.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSocialpostsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Beitrags-ID."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "socialposts.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "socialposts.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "socialposts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Lokaler Social-Media-Beitrag.",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "platform": {
                                            "type": "string",
                                            "enum": [
                                                "facebook",
                                                "instagram"
                                            ]
                                        },
                                        "target_id": {
                                            "type": "string"
                                        },
                                        "target_name": {
                                            "type": "string"
                                        },
                                        "remote_id": {
                                            "type": "string"
                                        },
                                        "media_type": {
                                            "type": "string"
                                        },
                                        "title": {
                                            "type": "string"
                                        },
                                        "text": {
                                            "type": "string"
                                        },
                                        "permalink": {
                                            "type": "string"
                                        },
                                        "image_url": {
                                            "type": "string"
                                        },
                                        "image_urls": {
                                            "type": "array",
                                            "items": {
                                                "type": "string",
                                                "format": "uri"
                                            }
                                        },
                                        "video_url": {
                                            "type": "string"
                                        },
                                        "cover_url": {
                                            "type": "string",
                                            "description": "Optionale Instagram-Reel-Cover-URL"
                                        },
                                        "targets": {
                                            "type": "object",
                                            "description": "Ausgewaehlte Ziele pro Plattform; niemals mit Access-Token"
                                        },
                                        "source_type": {
                                            "type": "string"
                                        },
                                        "source_id": {
                                            "type": "integer"
                                        },
                                        "status": {
                                            "type": "string",
                                            "enum": [
                                                "draft",
                                                "planned",
                                                "published",
                                                "deleted"
                                            ]
                                        },
                                        "scheduled_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "published_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "last_error": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 101,
                                    "location": "https://shop.local/api/v2/private/socialposts/101",
                                    "platform": "instagram",
                                    "target_id": "",
                                    "target_name": "",
                                    "remote_id": "draft:101",
                                    "media_type": "draft",
                                    "title": "Mehrdimensionale Varianten",
                                    "text": "Mehr Auswahl, klar strukturiert: mehrdimensionale Varianten im apt-shop.",
                                    "permalink": "",
                                    "image_url": "https://shop.local/images/social-api/2026/07/mehrdimensionale-varianten.webp",
                                    "image_urls": [
                                        "https://shop.local/images/social-api/2026/07/mehrdimensionale-varianten.webp"
                                    ],
                                    "video_url": "",
                                    "cover_url": "",
                                    "targets": {
                                        "facebook": [],
                                        "instagram": [
                                            {
                                                "id": "17841400000000000",
                                                "username": "apt-shop",
                                                "is_default": true
                                            }
                                        ]
                                    },
                                    "source_type": "feature",
                                    "source_id": 42,
                                    "status": "draft",
                                    "scheduled_at": null,
                                    "published_at": null,
                                    "created_at": "2026-07-24 12:00:00",
                                    "updated_at": "2026-07-24 12:00:00",
                                    "last_error": ""
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Social-Media-Entwurf aktualisieren.",
                "description": "Aktualisiert Text, Medien, Ziele oder Planung eines Entwurfs.\n\n\u26a0\ufe0f **Rate Limit:** Max. 250 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutSocialpostsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Beitrags-ID."
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Aenderbare Daten eines lokalen Social-Media-Entwurfs.",
                                "properties": {
                                    "title": {
                                        "type": "string"
                                    },
                                    "text": {
                                        "description": "Neuer Beitragstext oder ein Textobjekt mit dem Schluessel der Plattform des Entwurfs",
                                        "oneOf": [
                                            {
                                                "type": "string"
                                            },
                                            {
                                                "type": "object",
                                                "properties": {
                                                    "facebook": {
                                                        "type": "string"
                                                    },
                                                    "instagram": {
                                                        "type": "string"
                                                    }
                                                }
                                            }
                                        ]
                                    },
                                    "targets": {
                                        "type": "object",
                                        "properties": {
                                            "facebook": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            },
                                            "instagram": {
                                                "type": "array",
                                                "items": {
                                                    "type": "string"
                                                }
                                            }
                                        }
                                    },
                                    "image_urls": {
                                        "type": "array",
                                        "items": {
                                            "type": "string",
                                            "format": "uri"
                                        }
                                    },
                                    "video_url": {
                                        "type": "string",
                                        "format": "uri"
                                    },
                                    "cover_url": {
                                        "type": "string",
                                        "format": "uri",
                                        "description": "Optionale oeffentlich erreichbare HTTPS-Bild-URL fuer das Instagram-Reel-Cover; leer zum Entfernen. Ohne Cover verwendet Instagram den Videoframe bei 500 ms."
                                    },
                                    "source_type": {
                                        "type": "string"
                                    },
                                    "source_id": {
                                        "type": "integer"
                                    },
                                    "scheduled_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Zukuenftiger Zeitpunkt; leer zum Aufheben der Planung"
                                    }
                                }
                            },
                            "example": {
                                "title": "Mehrdimensionale Varianten im apt-shop",
                                "text": "Groesse, Farbe und weitere Merkmale flexibel kombinieren.",
                                "image_urls": [
                                    "https://shop.local/images/social-api/2026/07/mehrdimensionale-varianten-v2.webp"
                                ]
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "socialposts.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "socialposts.update"
                ],
                "x-ratelimit": {
                    "limit": 250,
                    "period": "hour",
                    "description": "Maximal 250 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "socialposts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Social-Media-Entwurf loeschen.",
                "description": "Loescht ausschliesslich lokale Entwuerfe oder geplante Beitraege, niemals bereits veroeffentlichte Inhalte.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteSocialpostsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Beitrags-ID."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "socialposts.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "socialposts.delete"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/socialposts/{id}/publish": {
            "post": {
                "tags": [
                    "socialposts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Ergebnis der Veroeffentlichung und anschliessenden Synchronisierung.",
                                    "properties": {
                                        "success": {
                                            "type": "boolean"
                                        },
                                        "error": {
                                            "type": "string"
                                        },
                                        "synced": {
                                            "type": "integer"
                                        },
                                        "sync_result": {
                                            "type": "object"
                                        },
                                        "results": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "platform": {
                                                        "type": "string"
                                                    },
                                                    "target": {
                                                        "type": "object",
                                                        "description": "Meta-Ziel ohne Access-Token"
                                                    },
                                                    "result": {
                                                        "type": "object",
                                                        "description": "Antwortdaten der Meta-API"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "success": true,
                                    "error": "",
                                    "synced": 1,
                                    "sync_result": {
                                        "count": 1,
                                        "details": [],
                                        "errors": [],
                                        "platforms": {
                                            "facebook": 0,
                                            "instagram": 1
                                        }
                                    },
                                    "results": [
                                        {
                                            "platform": "instagram",
                                            "target": {
                                                "id": "17841400000000000",
                                                "username": "apt-shop",
                                                "is_default": true
                                            },
                                            "result": {
                                                "id": "18000000000000000"
                                            }
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Beitrag sofort veroeffentlichen.",
                "description": "Veroeffentlicht einen Entwurf ueber die vorhandene Meta-Anbindung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostSocialpostsPublishPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Beitrags-ID."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "socialposts.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "socialposts.create"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/socialposts/{id}/schedule": {
            "post": {
                "tags": [
                    "socialposts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Lokaler Social-Media-Beitrag.",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "platform": {
                                            "type": "string",
                                            "enum": [
                                                "facebook",
                                                "instagram"
                                            ]
                                        },
                                        "target_id": {
                                            "type": "string"
                                        },
                                        "target_name": {
                                            "type": "string"
                                        },
                                        "remote_id": {
                                            "type": "string"
                                        },
                                        "media_type": {
                                            "type": "string"
                                        },
                                        "title": {
                                            "type": "string"
                                        },
                                        "text": {
                                            "type": "string"
                                        },
                                        "permalink": {
                                            "type": "string"
                                        },
                                        "image_url": {
                                            "type": "string"
                                        },
                                        "image_urls": {
                                            "type": "array",
                                            "items": {
                                                "type": "string",
                                                "format": "uri"
                                            }
                                        },
                                        "video_url": {
                                            "type": "string"
                                        },
                                        "cover_url": {
                                            "type": "string",
                                            "description": "Optionale Instagram-Reel-Cover-URL"
                                        },
                                        "targets": {
                                            "type": "object",
                                            "description": "Ausgewaehlte Ziele pro Plattform; niemals mit Access-Token"
                                        },
                                        "source_type": {
                                            "type": "string"
                                        },
                                        "source_id": {
                                            "type": "integer"
                                        },
                                        "status": {
                                            "type": "string",
                                            "enum": [
                                                "draft",
                                                "planned",
                                                "published",
                                                "deleted"
                                            ]
                                        },
                                        "scheduled_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "published_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "last_error": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 101,
                                    "location": "https://shop.local/api/v2/private/socialposts/101",
                                    "platform": "instagram",
                                    "target_id": "",
                                    "target_name": "",
                                    "remote_id": "draft:101",
                                    "media_type": "draft",
                                    "title": "Mehrdimensionale Varianten",
                                    "text": "Mehr Auswahl, klar strukturiert: mehrdimensionale Varianten im apt-shop.",
                                    "permalink": "",
                                    "image_url": "https://shop.local/images/social-api/2026/07/mehrdimensionale-varianten.webp",
                                    "image_urls": [
                                        "https://shop.local/images/social-api/2026/07/mehrdimensionale-varianten.webp"
                                    ],
                                    "video_url": "",
                                    "targets": {
                                        "facebook": [],
                                        "instagram": [
                                            {
                                                "id": "17841400000000000",
                                                "username": "apt-shop",
                                                "is_default": true
                                            }
                                        ]
                                    },
                                    "source_type": "feature",
                                    "source_id": 42,
                                    "status": "planned",
                                    "scheduled_at": "2026-07-25 10:00:00",
                                    "published_at": null,
                                    "created_at": "2026-07-24 12:00:00",
                                    "updated_at": "2026-07-24 12:05:00",
                                    "last_error": ""
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Beitrag planen.",
                "description": "Plant einen Entwurf fuer den angegebenen zukuenftigen Zeitpunkt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostSocialpostsSchedulePrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Beitrags-ID."
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Plant einen Social-Media-Entwurf zur Veroeffentlichung ein.",
                                "properties": {
                                    "scheduled_at": {
                                        "type": "string",
                                        "format": "date-time",
                                        "description": "Zukuenftiger Veroeffentlichungszeitpunkt mit Zeitzone"
                                    }
                                },
                                "required": [
                                    "scheduled_at"
                                ]
                            },
                            "example": {
                                "scheduled_at": "2026-07-25T10:00:00+02:00"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "socialposts.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "socialposts.create"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/socialposts/{id}/cancel_schedule": {
            "post": {
                "tags": [
                    "socialposts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Lokaler Social-Media-Beitrag.",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "platform": {
                                            "type": "string",
                                            "enum": [
                                                "facebook",
                                                "instagram"
                                            ]
                                        },
                                        "target_id": {
                                            "type": "string"
                                        },
                                        "target_name": {
                                            "type": "string"
                                        },
                                        "remote_id": {
                                            "type": "string"
                                        },
                                        "media_type": {
                                            "type": "string"
                                        },
                                        "title": {
                                            "type": "string"
                                        },
                                        "text": {
                                            "type": "string"
                                        },
                                        "permalink": {
                                            "type": "string"
                                        },
                                        "image_url": {
                                            "type": "string"
                                        },
                                        "image_urls": {
                                            "type": "array",
                                            "items": {
                                                "type": "string",
                                                "format": "uri"
                                            }
                                        },
                                        "video_url": {
                                            "type": "string"
                                        },
                                        "cover_url": {
                                            "type": "string",
                                            "description": "Optionale Instagram-Reel-Cover-URL"
                                        },
                                        "targets": {
                                            "type": "object",
                                            "description": "Ausgewaehlte Ziele pro Plattform; niemals mit Access-Token"
                                        },
                                        "source_type": {
                                            "type": "string"
                                        },
                                        "source_id": {
                                            "type": "integer"
                                        },
                                        "status": {
                                            "type": "string",
                                            "enum": [
                                                "draft",
                                                "planned",
                                                "published",
                                                "deleted"
                                            ]
                                        },
                                        "scheduled_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "published_at": {
                                            "type": "string",
                                            "format": "date-time",
                                            "nullable": true
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "updated_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "last_error": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 101,
                                    "location": "https://shop.local/api/v2/private/socialposts/101",
                                    "platform": "instagram",
                                    "target_id": "",
                                    "target_name": "",
                                    "remote_id": "draft:101",
                                    "media_type": "draft",
                                    "title": "Mehrdimensionale Varianten",
                                    "text": "Mehr Auswahl, klar strukturiert: mehrdimensionale Varianten im apt-shop.",
                                    "permalink": "",
                                    "image_url": "https://shop.local/images/social-api/2026/07/mehrdimensionale-varianten.webp",
                                    "image_urls": [
                                        "https://shop.local/images/social-api/2026/07/mehrdimensionale-varianten.webp"
                                    ],
                                    "video_url": "",
                                    "cover_url": "",
                                    "targets": {
                                        "facebook": [],
                                        "instagram": [
                                            {
                                                "id": "17841400000000000",
                                                "username": "apt-shop",
                                                "is_default": true
                                            }
                                        ]
                                    },
                                    "source_type": "feature",
                                    "source_id": 42,
                                    "status": "draft",
                                    "scheduled_at": null,
                                    "published_at": null,
                                    "created_at": "2026-07-24 12:00:00",
                                    "updated_at": "2026-07-24 12:00:00",
                                    "last_error": ""
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Planung aufheben.",
                "description": "Setzt einen geplanten Beitrag wieder auf Entwurf.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostSocialpostsCancel_schedulePrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Beitrags-ID."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "socialposts.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "socialposts.create"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/socialtargets": {
            "get": {
                "tags": [
                    "socialtargets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Verbundene Meta-Ziele ohne Zugangsdaten.",
                                    "properties": {
                                        "facebook": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "string"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "is_default": {
                                                        "type": "boolean"
                                                    }
                                                }
                                            }
                                        },
                                        "instagram": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "string"
                                                    },
                                                    "username": {
                                                        "type": "string"
                                                    },
                                                    "is_default": {
                                                        "type": "boolean"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "facebook": [
                                        {
                                            "id": "123456789012345",
                                            "name": "apt-shop",
                                            "is_default": true
                                        }
                                    ],
                                    "instagram": [
                                        {
                                            "id": "17841400000000000",
                                            "username": "apt-shop",
                                            "is_default": true
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Social-Media-Ziele abrufen.",
                "description": "Liefert die in apt-shop verbundenen Facebook- und Instagram-Ziele. Access-Tokens werden niemals ausgegeben.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSocialtargetsPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "socialtargets.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "socialtargets.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/socialvideos": {
            "post": {
                "tags": [
                    "socialvideos"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Gespeichertes Social-Media-Video.",
                                    "properties": {
                                        "url": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "path": {
                                            "type": "string"
                                        },
                                        "mime_type": {
                                            "type": "string"
                                        },
                                        "extension": {
                                            "type": "string",
                                            "enum": [
                                                "mp4",
                                                "mov",
                                                "webm"
                                            ]
                                        },
                                        "size": {
                                            "type": "integer",
                                            "description": "Dateigroesse in Bytes"
                                        }
                                    }
                                },
                                "example": {
                                    "url": "https://shop.local/videos/social-api/2026/08/20260810-120000-a1b2c3-shopfunktion-reel.mp4",
                                    "path": "videos/social-api/2026/08/20260810-120000-a1b2c3-shopfunktion-reel.mp4",
                                    "mime_type": "video/mp4",
                                    "extension": "mp4",
                                    "size": 1048576
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Social-Media-Video aus einem Base64-String speichern.",
                "description": "Erwartet JSON mit video (Dateiname) und stream (Base64-String oder Data-URL). Erlaubt sind MP4, MOV und WebM bis 25 MiB. Das Video wird unter einer oeffentlichen URL gespeichert, die anschliessend als video_url eines Social-Media-Entwurfs verwendet werden kann.\n\n\u26a0\ufe0f **Rate Limit:** Max. 30 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostSocialvideosPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Base64-kodiertes Video fuer einen Social-Media-Beitrag oder ein Reel. Maximal 25 MiB dekodierte Dateigroesse.",
                                "properties": {
                                    "video": {
                                        "type": "string",
                                        "description": "Original-Dateiname mit der Endung mp4, mov oder webm"
                                    },
                                    "stream": {
                                        "type": "string",
                                        "format": "byte",
                                        "description": "Base64-kodierter Videoinhalt, optional als Data-URL"
                                    }
                                },
                                "required": [
                                    "video",
                                    "stream"
                                ]
                            },
                            "example": {
                                "video": "shopfunktion-reel.mp4",
                                "stream": "AAAAHGZ0eXBpc29tAAACAGlzb21pc28y..."
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "socialvideos.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "socialvideos.create"
                ],
                "x-ratelimit": {
                    "limit": 30,
                    "period": "hour",
                    "description": "Maximal 30 Requests pro hour erlaubt."
                }
            }
        },
        "/private/statictexts": {
            "get": {
                "tags": [
                    "statictexts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "name": {
                                                        "type": "string",
                                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "description": "Multishop id."
                                                    },
                                                    "lang_id": {
                                                        "type": "integer",
                                                        "description": "Language id."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "content_html": {
                                                        "type": "string",
                                                        "description": "HTML content, included when details are requested."
                                                    },
                                                    "key": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "description": "Technischer Schluessel aus der Backend-UI."
                                                    },
                                                    "entry_redirect": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ],
                                                        "description": "Redirect-Kennzeichen fuer den Startseitentext."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Listenantwort fuer statische Textbereiche."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "data": [
                                            {
                                                "name": "impressum",
                                                "multishop_id": 1,
                                                "lang_id": 1,
                                                "location": "/private/statictexts/impressum?multishop_id=1&lang_id=1"
                                            }
                                        ],
                                        "total": 1,
                                        "limit": 50,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Statische Textbereiche abrufen",
                "description": "Listet statische Textbereiche oder gibt einen einzelnen Textbereich zurueck. Die Search-Action sucht in Namen und Inhalten, die Keys-Action listet UI-definierte Textschluessel.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetStatictextsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Eintraege."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Offset fuer die Paginierung."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Textinhalt und zugehoerige Details ausgeben."
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Textschluessel filtern."
                    },
                    {
                        "name": "multishop_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Multishop filtern."
                    },
                    {
                        "name": "lang_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Sprache filtern."
                    },
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff fuer die Search-Action."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/statictexts/{id}": {
            "get": {
                "tags": [
                    "statictexts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "name": {
                                            "type": "string",
                                            "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                        },
                                        "multishop_id": {
                                            "type": "integer",
                                            "description": "Multishop id."
                                        },
                                        "lang_id": {
                                            "type": "integer",
                                            "description": "Language id."
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API-URL zur Detailansicht des Datensatzes."
                                        },
                                        "content_html": {
                                            "type": "string",
                                            "description": "HTML content, included when details are requested."
                                        },
                                        "key": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "description": "Technischer Schluessel aus der Backend-UI."
                                        },
                                        "entry_redirect": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Redirect-Kennzeichen fuer den Startseitentext."
                                        }
                                    },
                                    "description": "Schema eines statischen Textbereichs."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "name": "einstiegsseite",
                                        "multishop_id": 1,
                                        "lang_id": 1,
                                        "location": "/private/statictexts/einstiegsseite?multishop_id=1&lang_id=1",
                                        "content_html": "<p>Welcome</p>",
                                        "key": {
                                            "name": "einstiegsseite",
                                            "label": "Entry page",
                                            "location": "/private/statictexts/einstiegsseite"
                                        },
                                        "entry_redirect": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Statischen Textbereich abrufen",
                "description": "Gibt einen einzelnen statischen Textbereich zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetStatictextsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "statictexts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "name": {
                                            "type": "string",
                                            "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                        },
                                        "multishop_id": {
                                            "type": "integer",
                                            "description": "Multishop id."
                                        },
                                        "lang_id": {
                                            "type": "integer",
                                            "description": "Language id."
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API-URL zur Detailansicht des Datensatzes."
                                        },
                                        "content_html": {
                                            "type": "string",
                                            "description": "HTML content, included when details are requested."
                                        },
                                        "key": {
                                            "type": [
                                                "object",
                                                "null"
                                            ],
                                            "description": "Technischer Schluessel aus der Backend-UI."
                                        },
                                        "entry_redirect": {
                                            "type": [
                                                "integer",
                                                "null"
                                            ],
                                            "description": "Redirect-Kennzeichen fuer den Startseitentext."
                                        }
                                    },
                                    "description": "Schema eines statischen Textbereichs."
                                },
                                "example": {
                                    "content_html": "<p>Updated content</p>",
                                    "multishop_id": 1,
                                    "lang_id": 1
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Statischen Textbereich aktualisieren",
                "description": "Aktualisiert den Inhalt eines UI-definierten statischen Textbereichs. Beim Startseitentext kann zusaetzlich entry_redirect aktualisiert werden.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutStatictextsDetailPrivate",
                "parameters": [
                    {
                        "name": "multishop_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Multishop id."
                    },
                    {
                        "name": "lang_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Language id."
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "content_html"
                                ],
                                "properties": {
                                    "content_html": {
                                        "type": "string",
                                        "description": "HTML content."
                                    },
                                    "value": {
                                        "type": "string",
                                        "description": "Alternative field name for HTML content."
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "description": "Multishop id."
                                    },
                                    "lang_id": {
                                        "type": "integer",
                                        "description": "Language id."
                                    },
                                    "entry_redirect": {
                                        "type": "integer",
                                        "description": "Redirect-Kennzeichen fuer den Startseitentext."
                                    }
                                },
                                "description": "Request-Body zum Aktualisieren eines statischen Textbereichs."
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/statictexts/search": {
            "get": {
                "tags": [
                    "statictexts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "name": {
                                                        "type": "string",
                                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "description": "Multishop id."
                                                    },
                                                    "lang_id": {
                                                        "type": "integer",
                                                        "description": "Language id."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "content_html": {
                                                        "type": "string",
                                                        "description": "HTML content, included when details are requested."
                                                    },
                                                    "key": {
                                                        "type": [
                                                            "object",
                                                            "null"
                                                        ],
                                                        "description": "Technischer Schluessel aus der Backend-UI."
                                                    },
                                                    "entry_redirect": {
                                                        "type": [
                                                            "integer",
                                                            "null"
                                                        ],
                                                        "description": "Redirect-Kennzeichen fuer den Startseitentext."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Suchantwort fuer statische Textbereiche."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "data": [
                                            {
                                                "name": "suche_hinweis",
                                                "multishop_id": 1,
                                                "lang_id": 1,
                                                "location": "/private/statictexts/suche_hinweis?multishop_id=1&lang_id=1"
                                            }
                                        ],
                                        "total": 1,
                                        "limit": 50,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Statische Textbereiche suchen",
                "description": "Sucht statische Textbereiche nach Textschluessel oder Inhalt.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetStatictextsSearchPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/statictexts/keys": {
            "get": {
                "tags": [
                    "statictexts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "name": {
                                                        "type": "string",
                                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                    },
                                                    "label": {
                                                        "type": "string",
                                                        "description": "Versandlabel."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        }
                                    },
                                    "description": "Schema fuer Statictexts."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "data": [
                                            {
                                                "name": "impressum",
                                                "label": "Imprint",
                                                "location": "/private/statictexts/impressum"
                                            }
                                        ],
                                        "total": 6
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Textschluessel abrufen",
                "description": "Gibt die UI-definierten Textschluessel fuer statische Textbereiche zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetStatictextsKeysPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/statsgroups": {
            "get": {
                "tags": [
                    "statsgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "name": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/statsgroups/1",
                                        "name": "B2B"
                                    },
                                    {
                                        "id": 2,
                                        "location": "https://localhost/shop/api/v2/private/statsgroups/2",
                                        "name": "Retail"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Auswertungsgruppen abrufen.",
                "description": "Liefert Daten fuer mehrere Auswertungsgruppen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetStatsgroupsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "statsgroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "statsgroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "statsgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Auswertungsgruppe erstellen.",
                "description": "Erstellt eine Auswertungsgruppe.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostStatsgroupsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string"
                                    }
                                }
                            },
                            "example": {
                                "name": "B2B"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "statsgroups.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "statsgroups.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/statsgroups/{id}": {
            "get": {
                "tags": [
                    "statsgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "name": {
                                            "type": "string"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/statsgroups/1",
                                    "name": "B2B"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Auswertungsgruppe abrufen.",
                "description": "Liefert Daten zu einer Auswertungsgruppe.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetStatsgroupsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Auswertungsgruppen-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "statsgroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "statsgroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "statsgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Auswertungsgruppe aktualisieren.",
                "description": "Aktualisiert eine Auswertungsgruppe.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutStatsgroupsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Auswertungsgruppen-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Statistics group name."
                                    }
                                }
                            },
                            "example": {
                                "name": "Retail"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "statsgroups.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "statsgroups.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "statsgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Auswertungsgruppe loeschen.",
                "description": "Loescht eine Auswertungsgruppe.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteStatsgroupsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Auswertungsgruppen-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "statsgroups.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "statsgroups.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/statsgroups/search": {
            "get": {
                "tags": [
                    "statsgroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "name": {
                                                "type": "string"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/statsgroups/1",
                                        "name": "B2B"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Auswertungsgruppen nach einem String.",
                "description": "Sucht in Auswertungsgruppen nach Bezeichnung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetStatsgroupsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "statsgroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "statsgroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/stockbookings": {
            "get": {
                "tags": [
                    "stockbookings"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Antwort auf GET /private/stockbookings - Warenbewegungen",
                                    "items": {
                                        "oneOf": [
                                            {
                                                "description": "Wareneingang",
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "format": "uri"
                                                    },
                                                    "type_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "type": {
                                                        "type": "string",
                                                        "example": "goods_receipt"
                                                    },
                                                    "to_depot_id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "status": {
                                                        "type": "integer"
                                                    },
                                                    "status_name": {
                                                        "type": "string"
                                                    },
                                                    "user": {
                                                        "type": "string"
                                                    },
                                                    "booking_date": {
                                                        "type": "string",
                                                        "format": "date"
                                                    },
                                                    "booking_mode": {
                                                        "type": "integer"
                                                    },
                                                    "position_count": {
                                                        "type": "integer"
                                                    },
                                                    "quantity_count": {
                                                        "type": "integer"
                                                    }
                                                }
                                            },
                                            {
                                                "description": "Warenumbuchung",
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "format": "uri"
                                                    },
                                                    "type_id": {
                                                        "type": "integer",
                                                        "example": 2
                                                    },
                                                    "type": {
                                                        "type": "string",
                                                        "example": "stock_transfer"
                                                    },
                                                    "from_depot_id": {
                                                        "type": "integer"
                                                    },
                                                    "to_depot_id": {
                                                        "type": "integer"
                                                    },
                                                    "name": {
                                                        "type": "string"
                                                    },
                                                    "status": {
                                                        "type": "integer"
                                                    },
                                                    "status_name": {
                                                        "type": "string"
                                                    },
                                                    "user": {
                                                        "type": "string"
                                                    },
                                                    "booking_date": {
                                                        "type": "string",
                                                        "format": "date"
                                                    },
                                                    "booking_mode": {
                                                        "type": "integer"
                                                    },
                                                    "position_count": {
                                                        "type": "integer"
                                                    },
                                                    "quantity_count": {
                                                        "type": "integer"
                                                    }
                                                }
                                            }
                                        ]
                                    }
                                },
                                "examples": {
                                    "Wareneingang": {
                                        "summary": "Liste Wareneingaenge",
                                        "value": [
                                            {
                                                "id": 76,
                                                "location": "https://example.com/api/v2/private/stockbookings/76",
                                                "type_id": 1,
                                                "type": "goods_receipt",
                                                "to_depot_id": 1,
                                                "name": "Goods receipt 2026-01-01",
                                                "status": 0,
                                                "status_name": "open",
                                                "user": "Admin",
                                                "booking_date": "2026-01-01",
                                                "booking_mode": 1,
                                                "position_count": 1,
                                                "quantity_count": 5
                                            }
                                        ]
                                    },
                                    "Warenumbuchung": {
                                        "summary": "Liste Warenumbuchungen",
                                        "value": [
                                            {
                                                "id": 77,
                                                "location": "https://example.com/api/v2/private/stockbookings/77",
                                                "type_id": 2,
                                                "type": "stock_transfer",
                                                "from_depot_id": 1,
                                                "to_depot_id": 2,
                                                "name": "Stock transfer 2026-01-01",
                                                "status": 0,
                                                "status_name": "open",
                                                "user": "Admin",
                                                "booking_date": "2026-01-01",
                                                "booking_mode": 1,
                                                "position_count": 1,
                                                "quantity_count": 5
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Mehrere Warenbewegungen abrufen.",
                "description": "Liefert Warenbewegungen fuer einen Typ. Inventuren werden ueber diese Schnittstelle nicht geliefert.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetStockbookingsPrivate",
                "parameters": [
                    {
                        "name": "type_id",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Warenbewegungstyp: 1=Wareneingang, 2=Warenumbuchung"
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Filtert nach Status"
                    },
                    {
                        "name": "from_depot_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Filtert nach Ausgangslager-ID"
                    },
                    {
                        "name": "to_depot_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Filtert nach Ziellager-ID"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden Positionen mit zurueckgegeben"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "stockbookings.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "stockbookings.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/stockbookings/{id}": {
            "get": {
                "tags": [
                    "stockbookings"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "oneOf": [
                                        {
                                            "description": "Wareneingang",
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "format": "uri"
                                                },
                                                "type_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "type": {
                                                    "type": "string",
                                                    "example": "goods_receipt"
                                                },
                                                "to_depot_id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "status": {
                                                    "type": "integer"
                                                },
                                                "status_name": {
                                                    "type": "string"
                                                },
                                                "user": {
                                                    "type": "string"
                                                },
                                                "booking_date": {
                                                    "type": "string",
                                                    "format": "date"
                                                },
                                                "booking_mode": {
                                                    "type": "integer"
                                                },
                                                "position_count": {
                                                    "type": "integer"
                                                },
                                                "quantity_count": {
                                                    "type": "integer"
                                                },
                                                "in_use": {
                                                    "type": "boolean"
                                                },
                                                "closed_new_products": {
                                                    "type": "boolean"
                                                },
                                                "details": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "supplier_order_detail_id": {
                                                                "type": "integer"
                                                            },
                                                            "product_id": {
                                                                "type": "integer"
                                                            },
                                                            "product_location": {
                                                                "type": "string",
                                                                "format": "uri"
                                                            },
                                                            "variation_id": {
                                                                "type": "integer"
                                                            },
                                                            "quantity": {
                                                                "type": "integer"
                                                            },
                                                            "received_quantity": {
                                                                "type": "integer"
                                                            },
                                                            "status": {
                                                                "type": "integer"
                                                            },
                                                            "status_name": {
                                                                "type": "string"
                                                            },
                                                            "to_depot_quantity": {
                                                                "type": "integer"
                                                            },
                                                            "total_quantity": {
                                                                "type": "integer"
                                                            },
                                                            "supplier_package_quantity": {
                                                                "type": "integer"
                                                            },
                                                            "to_depot_positions": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "storage_location_id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "depot_id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "quantity": {
                                                                            "type": "integer"
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        },
                                        {
                                            "description": "Warenumbuchung",
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer"
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "format": "uri"
                                                },
                                                "type_id": {
                                                    "type": "integer",
                                                    "example": 2
                                                },
                                                "type": {
                                                    "type": "string",
                                                    "example": "stock_transfer"
                                                },
                                                "from_depot_id": {
                                                    "type": "integer"
                                                },
                                                "to_depot_id": {
                                                    "type": "integer"
                                                },
                                                "name": {
                                                    "type": "string"
                                                },
                                                "status": {
                                                    "type": "integer"
                                                },
                                                "status_name": {
                                                    "type": "string"
                                                },
                                                "user": {
                                                    "type": "string"
                                                },
                                                "booking_date": {
                                                    "type": "string",
                                                    "format": "date"
                                                },
                                                "booking_mode": {
                                                    "type": "integer"
                                                },
                                                "position_count": {
                                                    "type": "integer"
                                                },
                                                "quantity_count": {
                                                    "type": "integer"
                                                },
                                                "in_use": {
                                                    "type": "boolean"
                                                },
                                                "closed_new_products": {
                                                    "type": "boolean"
                                                },
                                                "details": {
                                                    "type": "array",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer"
                                                            },
                                                            "supplier_order_detail_id": {
                                                                "type": "integer"
                                                            },
                                                            "product_id": {
                                                                "type": "integer"
                                                            },
                                                            "product_location": {
                                                                "type": "string",
                                                                "format": "uri"
                                                            },
                                                            "variation_id": {
                                                                "type": "integer"
                                                            },
                                                            "quantity": {
                                                                "type": "integer"
                                                            },
                                                            "received_quantity": {
                                                                "type": "integer"
                                                            },
                                                            "status": {
                                                                "type": "integer"
                                                            },
                                                            "status_name": {
                                                                "type": "string"
                                                            },
                                                            "from_depot_quantity": {
                                                                "type": "integer"
                                                            },
                                                            "to_depot_quantity": {
                                                                "type": "integer"
                                                            },
                                                            "total_quantity": {
                                                                "type": "integer"
                                                            },
                                                            "supplier_package_quantity": {
                                                                "type": "integer"
                                                            },
                                                            "from_depot_positions": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "storage_location_id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "depot_id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "quantity": {
                                                                            "type": "integer"
                                                                        }
                                                                    }
                                                                }
                                                            },
                                                            "to_depot_positions": {
                                                                "type": "array",
                                                                "items": {
                                                                    "type": "object",
                                                                    "properties": {
                                                                        "storage_location_id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "depot_id": {
                                                                            "type": "integer"
                                                                        },
                                                                        "quantity": {
                                                                            "type": "integer"
                                                                        }
                                                                    }
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    ]
                                },
                                "examples": {
                                    "Wareneingang": {
                                        "summary": "Wareneingang",
                                        "value": {
                                            "id": 76,
                                            "location": "https://example.com/api/v2/private/stockbookings/76",
                                            "type_id": 1,
                                            "type": "goods_receipt",
                                            "to_depot_id": 1,
                                            "name": "Goods receipt 2026-01-01",
                                            "status": 0,
                                            "status_name": "open",
                                            "user": "Admin",
                                            "booking_date": "2026-01-01",
                                            "booking_mode": 1,
                                            "position_count": 1,
                                            "quantity_count": 5,
                                            "in_use": false,
                                            "closed_new_products": false,
                                            "details": [
                                                {
                                                    "id": 88,
                                                    "supplier_order_detail_id": 123,
                                                    "product_id": 12,
                                                    "product_location": "https://example.com/api/v2/private/products/12",
                                                    "variation_id": 34,
                                                    "quantity": 5,
                                                    "received_quantity": 0,
                                                    "status": 0,
                                                    "status_name": "open",
                                                    "to_depot_quantity": 5,
                                                    "total_quantity": 5,
                                                    "supplier_package_quantity": 1,
                                                    "to_depot_positions": [
                                                        {
                                                            "storage_location_id": 101,
                                                            "depot_id": 1,
                                                            "quantity": 5
                                                        }
                                                    ]
                                                }
                                            ]
                                        }
                                    },
                                    "Warenumbuchung": {
                                        "summary": "Warenumbuchung",
                                        "value": {
                                            "id": 77,
                                            "location": "https://example.com/api/v2/private/stockbookings/77",
                                            "type_id": 2,
                                            "type": "stock_transfer",
                                            "from_depot_id": 1,
                                            "to_depot_id": 2,
                                            "name": "Stock transfer 2026-01-01",
                                            "status": 0,
                                            "status_name": "open",
                                            "user": "Admin",
                                            "booking_date": "2026-01-01",
                                            "booking_mode": 1,
                                            "position_count": 1,
                                            "quantity_count": 5,
                                            "in_use": false,
                                            "closed_new_products": false,
                                            "details": [
                                                {
                                                    "id": 88,
                                                    "supplier_order_detail_id": 0,
                                                    "product_id": 12,
                                                    "product_location": "https://example.com/api/v2/private/products/12",
                                                    "variation_id": 34,
                                                    "quantity": 5,
                                                    "received_quantity": 5,
                                                    "status": 0,
                                                    "status_name": "open",
                                                    "from_depot_quantity": 5,
                                                    "to_depot_quantity": 5,
                                                    "total_quantity": 10,
                                                    "supplier_package_quantity": 1,
                                                    "from_depot_positions": [
                                                        {
                                                            "storage_location_id": 101,
                                                            "depot_id": 1,
                                                            "quantity": 5
                                                        }
                                                    ],
                                                    "to_depot_positions": [
                                                        {
                                                            "storage_location_id": 202,
                                                            "depot_id": 2,
                                                            "quantity": 5
                                                        }
                                                    ]
                                                }
                                            ]
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Warenbewegung abrufen.",
                "description": "Liefert eine Warenbewegung. Inventuren werden ueber diese Schnittstelle nicht geliefert.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetStockbookingsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Warenbewegung-ID"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden Positionen mit zurueckgegeben"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "stockbookings.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "stockbookings.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/subdomains": {
            "get": {
                "tags": [
                    "subdomains"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "v2/docs/returns/Subdomains/get_subdomain.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/subdomains/1",
                                        "domain": "aktion.example.com",
                                        "target_url": "/landingpage"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Subdomain-Weiterleitungen abrufen.",
                "description": "Liefert Daten fuer mehrere Subdomain-Weiterleitungen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSubdomainsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "domain": {
                                    "type": "string"
                                },
                                "target_url": {
                                    "type": "string"
                                }
                            }
                        },
                        "description": "Filtert nach Subdomain oder Ziel"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "subdomains.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "subdomains.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "subdomains"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Subdomain-Weiterleitung erstellen.",
                "description": "Erstellt eine Subdomain-Weiterleitung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostSubdomainsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "domain"
                                ],
                                "properties": {
                                    "domain": {
                                        "type": "string",
                                        "description": "Subdomain",
                                        "example": "aktion.example.com"
                                    },
                                    "target_url": {
                                        "type": "string",
                                        "description": "Ziel-URL oder Zielpfad",
                                        "example": "/landingpage"
                                    }
                                }
                            },
                            "example": {
                                "domain": "aktion.example.com",
                                "target_url": "/landingpage"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "subdomains.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "subdomains.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/subdomains/{id}": {
            "get": {
                "tags": [
                    "subdomains"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": 1
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Object",
                                            "example": "https://localhost/shop/api/v2/private/subdomains/1"
                                        },
                                        "domain": {
                                            "type": "string",
                                            "description": "Subdomain",
                                            "example": "aktion.example.com"
                                        },
                                        "target_url": {
                                            "type": "string",
                                            "description": "Ziel-URL oder Zielpfad",
                                            "example": "/landingpage"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://localhost/shop/api/v2/private/subdomains/1",
                                    "domain": "aktion.example.com",
                                    "target_url": "/landingpage"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Subdomain-Weiterleitung abrufen.",
                "description": "Liefert Daten zu einer Subdomain-Weiterleitung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSubdomainsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Subdomain-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "subdomains.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "subdomains.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "subdomains"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Subdomain-Weiterleitung aktualisieren.",
                "description": "Aktualisiert eine Subdomain-Weiterleitung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutSubdomainsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Subdomain-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "domain": {
                                        "type": "string",
                                        "description": "Subdomain",
                                        "example": "aktion.example.com"
                                    },
                                    "target_url": {
                                        "type": "string",
                                        "description": "Ziel-URL oder Zielpfad",
                                        "example": "/landingpage"
                                    }
                                }
                            },
                            "example": {
                                "target_url": "/neue-landingpage"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "subdomains.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "subdomains.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "subdomains"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Subdomain-Weiterleitung loeschen.",
                "description": "Loescht eine Subdomain-Weiterleitung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteSubdomainsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Subdomain-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "subdomains.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "subdomains.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/subdomains/search": {
            "get": {
                "tags": [
                    "subdomains"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "items": {
                                        "$ref": "v2/docs/returns/Subdomains/get_subdomain.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/subdomains/1",
                                        "domain": "aktion.example.com",
                                        "target_url": "/landingpage"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Subdomain-Weiterleitungen nach einem String.",
                "description": "Sucht in Subdomain-Weiterleitungen nach Domain.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSubdomainsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "subdomains.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "subdomains.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/subscriptionintervals": {
            "get": {
                "tags": [
                    "subscriptionintervals"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/subscriptionintervals/1"
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "monatlich"
                                                    },
                                                    "status": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "status_name": {
                                                        "type": "string",
                                                        "example": "active"
                                                    },
                                                    "frequency": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "frequency_unit_id": {
                                                        "type": "integer",
                                                        "example": 3
                                                    },
                                                    "frequency_unit_name": {
                                                        "type": "string",
                                                        "example": "Monate"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/subscriptionintervals/1",
                                            "name": "monatlich",
                                            "status": 1,
                                            "status_name": "active",
                                            "frequency": 1,
                                            "frequency_unit_id": 3,
                                            "frequency_unit_name": "Monate"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Subscriptionintervals abrufen.",
                "description": "Liefert eine paginierte Liste fuer Subscriptionintervals.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetSubscriptionintervalsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "subscriptionintervals"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/subscriptionintervals/1"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "monatlich"
                                                },
                                                "status": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "status_name": {
                                                    "type": "string",
                                                    "example": "active"
                                                },
                                                "frequency": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "frequency_unit_id": {
                                                    "type": "integer",
                                                    "example": 3
                                                },
                                                "frequency_unit_name": {
                                                    "type": "string",
                                                    "example": "Monate"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "name": "monatlich",
                                    "status": 1,
                                    "frequency": 1,
                                    "frequency_unit_id": 3
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Subscriptionintervals anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Subscriptionintervals.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostSubscriptionintervalsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "monatlich"
                                    },
                                    "status": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "frequency": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "frequency_unit_id": {
                                        "type": "integer",
                                        "example": 3
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/subscriptionintervals/{id}": {
            "get": {
                "tags": [
                    "subscriptionintervals"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/subscriptionintervals/1"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "monatlich"
                                                },
                                                "status": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "status_name": {
                                                    "type": "string",
                                                    "example": "active"
                                                },
                                                "frequency": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "frequency_unit_id": {
                                                    "type": "integer",
                                                    "example": 3
                                                },
                                                "frequency_unit_name": {
                                                    "type": "string",
                                                    "example": "Monate"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/subscriptionintervals/1",
                                        "name": "monatlich",
                                        "status": 1,
                                        "status_name": "active",
                                        "frequency": 1,
                                        "frequency_unit_id": 3,
                                        "frequency_unit_name": "Monate"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Subscriptionintervals Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Subscriptionintervals.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetSubscriptionintervalsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "subscriptionintervals"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/subscriptionintervals/1"
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "monatlich"
                                                },
                                                "status": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "status_name": {
                                                    "type": "string",
                                                    "example": "active"
                                                },
                                                "frequency": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "frequency_unit_id": {
                                                    "type": "integer",
                                                    "example": 3
                                                },
                                                "frequency_unit_name": {
                                                    "type": "string",
                                                    "example": "Monate"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "name": "monatlich",
                                    "status": 1,
                                    "frequency": 1,
                                    "frequency_unit_id": 3
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Subscriptionintervals aktualisieren.",
                "description": "Schreibt die uebergebenen Felder fuer Subscriptionintervals.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutSubscriptionintervalsDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "monatlich"
                                    },
                                    "status": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "frequency": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "frequency_unit_id": {
                                        "type": "integer",
                                        "example": 3
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/subscriptionintervals/search": {
            "get": {
                "tags": [
                    "subscriptionintervals"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/subscriptionintervals/1"
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "monatlich"
                                                    },
                                                    "status": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "frequency": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "frequency_unit_id": {
                                                        "type": "integer",
                                                        "example": 3
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/subscriptionintervals/1",
                                            "name": "monatlich",
                                            "status": 1,
                                            "frequency": 1,
                                            "frequency_unit_id": 3
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Subscriptionintervals suchen.",
                "description": "Sucht Datensaetze fuer Subscriptionintervals anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetSubscriptionintervalsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/subscriptionorders": {
            "get": {
                "tags": [
                    "subscriptionorders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Listenantwort fuer Abonnement-Bestellungen.",
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "description": "Status der API-Antwort.",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "description": "Liste der Abonnement-Bestellungen.",
                                            "items": {
                                                "type": "object",
                                                "description": "Abonnement-Bestellung.",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "description": "Interne ID der Abonnement-Bestellung."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht der Abonnement-Bestellung."
                                                    },
                                                    "order_number": {
                                                        "type": "string",
                                                        "description": "Abo-Nr. aus der Backend-Ansicht."
                                                    },
                                                    "date": {
                                                        "type": "string",
                                                        "description": "Datum der Abonnement-Bestellung."
                                                    },
                                                    "next_timestamp": {
                                                        "type": "integer",
                                                        "description": "Zeitstempel fuer den naechsten Zyklus bzw. die naechste Bestellung."
                                                    },
                                                    "next_timestamp_type": {
                                                        "type": "integer",
                                                        "description": "Typ der Berechnung fuer den naechsten Zyklus."
                                                    },
                                                    "status": {
                                                        "type": "integer",
                                                        "description": "Interner Status der Abonnement-Bestellung."
                                                    },
                                                    "status_name": {
                                                        "type": "string",
                                                        "description": "Lesbarer Name des Abonnement-Status."
                                                    },
                                                    "customer_id": {
                                                        "type": "integer",
                                                        "description": "ID des Kunden."
                                                    },
                                                    "customer_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "API-URL zum Kunden."
                                                    },
                                                    "custgroup_id": {
                                                        "type": "integer",
                                                        "description": "ID der Kundengruppe."
                                                    },
                                                    "custgroup_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "API-URL zur Kundengruppe."
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "description": "ID des Multishops."
                                                    },
                                                    "plan_id": {
                                                        "type": "integer",
                                                        "description": "ID des Abonnement-Plans."
                                                    },
                                                    "plan_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "API-URL zum Abonnement-Plan."
                                                    },
                                                    "interval_id": {
                                                        "type": "integer",
                                                        "description": "ID des Abonnement-Intervalls."
                                                    },
                                                    "interval_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "API-URL zum Abonnement-Intervall."
                                                    },
                                                    "interval_name": {
                                                        "type": "string",
                                                        "description": "Name des Intervalls aus der Backend-Spalte Intervall."
                                                    },
                                                    "frequency": {
                                                        "type": "integer",
                                                        "description": "Frequenz des Abonnement-Intervalls."
                                                    },
                                                    "frequency_unit": {
                                                        "type": "integer",
                                                        "description": "Einheit der Frequenz des Abonnement-Intervalls."
                                                    },
                                                    "minimum_order_count": {
                                                        "type": "integer",
                                                        "description": "Mindestanzahl der auszufuehrenden Bestellungen."
                                                    },
                                                    "maximum_order_count": {
                                                        "type": "integer",
                                                        "description": "Maximalanzahl der auszufuehrenden Bestellungen."
                                                    },
                                                    "product_id": {
                                                        "type": "integer",
                                                        "description": "ID des Artikels."
                                                    },
                                                    "product_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "API-URL zum Artikel."
                                                    },
                                                    "variation_id": {
                                                        "type": "integer",
                                                        "description": "ID der Artikelvariante."
                                                    },
                                                    "variation_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "API-URL zur Artikelvariante."
                                                    },
                                                    "quantity": {
                                                        "type": "integer",
                                                        "description": "Menge der Abonnement-Position."
                                                    },
                                                    "item_price": {
                                                        "type": "number",
                                                        "description": "Einzelpreis der Abonnement-Position."
                                                    },
                                                    "tax_rate": {
                                                        "type": "number",
                                                        "description": "Steuersatz der Abonnement-Position."
                                                    },
                                                    "currency": {
                                                        "type": "string",
                                                        "description": "Waehrung der Abonnement-Bestellung."
                                                    },
                                                    "total_net": {
                                                        "type": "number",
                                                        "description": "Nettosumme der Abonnement-Bestellung."
                                                    },
                                                    "total_gross": {
                                                        "type": "number",
                                                        "description": "Bruttosumme der Abonnement-Bestellung."
                                                    },
                                                    "voucher_total": {
                                                        "type": "number",
                                                        "description": "Gutscheinsumme der Abonnement-Bestellung."
                                                    },
                                                    "shipping_name": {
                                                        "type": "string",
                                                        "description": "Versandart aus der Backend-Spalte Versandart."
                                                    },
                                                    "shipping_costs": {
                                                        "type": "number",
                                                        "description": "Versandkosten aus der Backend-Spalte Versandkosten."
                                                    },
                                                    "payment_name": {
                                                        "type": "string",
                                                        "description": "Zahlungsart aus der Backend-Spalte Zahlungsart."
                                                    },
                                                    "payment_costs": {
                                                        "type": "number",
                                                        "description": "Kosten der Zahlungsart."
                                                    },
                                                    "payment_module": {
                                                        "type": "string",
                                                        "description": "Technisches Modul der Zahlungsart."
                                                    },
                                                    "has_paypal_subscription": {
                                                        "type": "boolean",
                                                        "description": "Kennzeichen, ob eine PayPal-Subscription-ID vorhanden ist."
                                                    },
                                                    "detail_count": {
                                                        "type": "integer",
                                                        "description": "Anzahl der Positionen zur Abonnement-Bestellung."
                                                    },
                                                    "history_count": {
                                                        "type": "integer",
                                                        "description": "Anzahl der Historieneintraege zur Abonnement-Bestellung."
                                                    }
                                                }
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "description": "Metadaten zur Listenabfrage.",
                                            "properties": {
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Gesamtanzahl der passenden Datensaetze."
                                                },
                                                "limit": {
                                                    "type": "integer",
                                                    "description": "Verwendetes Limit."
                                                },
                                                "offset": {
                                                    "type": "integer",
                                                    "description": "Verwendeter Offset."
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "request": {
                                        "method": "GET",
                                        "path": "/api/v2/private/subscriptionorders?limit=2&details=false"
                                    },
                                    "response": {
                                        "status": "ok",
                                        "data": [
                                            {
                                                "id": 42,
                                                "location": "https://example.test/api/v2/private/subscriptionorders/42",
                                                "order_number": "A-10042",
                                                "date": "2026-06-01",
                                                "next_timestamp": 1780272000,
                                                "next_timestamp_type": 0,
                                                "status": 1,
                                                "status_name": "active",
                                                "customer_id": 123,
                                                "plan_id": 2,
                                                "interval_id": 1,
                                                "interval_name": "Monatlich",
                                                "frequency": 1,
                                                "frequency_unit": 2,
                                                "product_id": 4711,
                                                "variation_id": 0,
                                                "quantity": 1,
                                                "item_price": 19.95,
                                                "currency": "EUR",
                                                "total_net": 16.76,
                                                "total_gross": 19.95,
                                                "has_paypal_subscription": true,
                                                "detail_count": 1,
                                                "history_count": 2
                                            }
                                        ],
                                        "meta": {
                                            "total": 1,
                                            "limit": 2,
                                            "offset": 0
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Abonnement-Bestellungen abrufen",
                "description": "Gibt die Abonnement-Bestellungen aus der Backend-Ansicht zurueck. Mit details=true werden Adressen, Positionen und Historie ergaenzt. Schreibzugriffe sind nicht freigegeben, weil die Backend-UI Zahlungs-, Status- und Folgeauftragsprozesse ausfuehrt.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSubscriptionordersPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Adressen, Positionen und Historie ausgeben."
                    },
                    {
                        "name": "id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach interner ID filtern."
                    },
                    {
                        "name": "order_number",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Abo-Nr. filtern."
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Abonnement-Status filtern."
                    },
                    {
                        "name": "customer_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Kunde filtern."
                    },
                    {
                        "name": "custgroup_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Kundengruppe filtern."
                    },
                    {
                        "name": "multishop_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Multishop filtern."
                    },
                    {
                        "name": "plan_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Abonnement-Plan filtern."
                    },
                    {
                        "name": "interval_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Intervall filtern."
                    },
                    {
                        "name": "product_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Artikel filtern."
                    },
                    {
                        "name": "variation_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Artikelvariante filtern."
                    },
                    {
                        "name": "date_from",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Datum ab YYYY-MM-DD filtern."
                    },
                    {
                        "name": "date_to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Datum bis YYYY-MM-DD filtern."
                    },
                    {
                        "name": "next_from",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach naechstem Zyklus ab Unix-Zeitstempel filtern."
                    },
                    {
                        "name": "next_to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach naechstem Zyklus bis Unix-Zeitstempel filtern."
                    },
                    {
                        "name": "email",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Liefer- oder Rechnungs-E-Mail filtern."
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    },
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/subscriptionorders/{id}": {
            "get": {
                "tags": [
                    "subscriptionorders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Detailantwort einer Abonnement-Bestellung.",
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "description": "Status der API-Antwort.",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "description": "Abonnement-Bestellung.",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "description": "Interne ID der Abonnement-Bestellung."
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "description": "API-URL zur Detailansicht der Abonnement-Bestellung."
                                                },
                                                "order_number": {
                                                    "type": "string",
                                                    "description": "Abo-Nr. aus der Backend-Ansicht."
                                                },
                                                "date": {
                                                    "type": "string",
                                                    "description": "Datum der Abonnement-Bestellung."
                                                },
                                                "next_timestamp": {
                                                    "type": "integer",
                                                    "description": "Zeitstempel fuer den naechsten Zyklus bzw. die naechste Bestellung."
                                                },
                                                "next_timestamp_type": {
                                                    "type": "integer",
                                                    "description": "Typ der Berechnung fuer den naechsten Zyklus."
                                                },
                                                "status": {
                                                    "type": "integer",
                                                    "description": "Interner Status der Abonnement-Bestellung."
                                                },
                                                "status_name": {
                                                    "type": "string",
                                                    "description": "Lesbarer Name des Abonnement-Status."
                                                },
                                                "customer_id": {
                                                    "type": "integer",
                                                    "description": "ID des Kunden."
                                                },
                                                "customer_location": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "API-URL zum Kunden."
                                                },
                                                "custgroup_id": {
                                                    "type": "integer",
                                                    "description": "ID der Kundengruppe."
                                                },
                                                "custgroup_location": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "API-URL zur Kundengruppe."
                                                },
                                                "multishop_id": {
                                                    "type": "integer",
                                                    "description": "ID des Multishops."
                                                },
                                                "plan_id": {
                                                    "type": "integer",
                                                    "description": "ID des Abonnement-Plans."
                                                },
                                                "plan_location": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "API-URL zum Abonnement-Plan."
                                                },
                                                "interval_id": {
                                                    "type": "integer",
                                                    "description": "ID des Abonnement-Intervalls."
                                                },
                                                "interval_location": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "API-URL zum Abonnement-Intervall."
                                                },
                                                "interval_name": {
                                                    "type": "string",
                                                    "description": "Name des Intervalls aus der Backend-Spalte Intervall."
                                                },
                                                "frequency": {
                                                    "type": "integer",
                                                    "description": "Frequenz des Abonnement-Intervalls."
                                                },
                                                "frequency_unit": {
                                                    "type": "integer",
                                                    "description": "Einheit der Frequenz des Abonnement-Intervalls."
                                                },
                                                "minimum_order_count": {
                                                    "type": "integer",
                                                    "description": "Mindestanzahl der auszufuehrenden Bestellungen."
                                                },
                                                "maximum_order_count": {
                                                    "type": "integer",
                                                    "description": "Maximalanzahl der auszufuehrenden Bestellungen."
                                                },
                                                "product_id": {
                                                    "type": "integer",
                                                    "description": "ID des Artikels."
                                                },
                                                "product_location": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "API-URL zum Artikel."
                                                },
                                                "variation_id": {
                                                    "type": "integer",
                                                    "description": "ID der Artikelvariante."
                                                },
                                                "variation_location": {
                                                    "type": [
                                                        "string",
                                                        "null"
                                                    ],
                                                    "description": "API-URL zur Artikelvariante."
                                                },
                                                "quantity": {
                                                    "type": "integer",
                                                    "description": "Menge der Abonnement-Position."
                                                },
                                                "item_price": {
                                                    "type": "number",
                                                    "description": "Einzelpreis der Abonnement-Position."
                                                },
                                                "tax_rate": {
                                                    "type": "number",
                                                    "description": "Steuersatz der Abonnement-Position."
                                                },
                                                "currency": {
                                                    "type": "string",
                                                    "description": "Waehrung der Abonnement-Bestellung."
                                                },
                                                "total_net": {
                                                    "type": "number",
                                                    "description": "Nettosumme der Abonnement-Bestellung."
                                                },
                                                "total_gross": {
                                                    "type": "number",
                                                    "description": "Bruttosumme der Abonnement-Bestellung."
                                                },
                                                "voucher_total": {
                                                    "type": "number",
                                                    "description": "Gutscheinsumme der Abonnement-Bestellung."
                                                },
                                                "shipping_name": {
                                                    "type": "string",
                                                    "description": "Versandart aus der Backend-Spalte Versandart."
                                                },
                                                "shipping_costs": {
                                                    "type": "number",
                                                    "description": "Versandkosten aus der Backend-Spalte Versandkosten."
                                                },
                                                "payment_name": {
                                                    "type": "string",
                                                    "description": "Zahlungsart aus der Backend-Spalte Zahlungsart."
                                                },
                                                "payment_costs": {
                                                    "type": "number",
                                                    "description": "Kosten der Zahlungsart."
                                                },
                                                "payment_module": {
                                                    "type": "string",
                                                    "description": "Technisches Modul der Zahlungsart."
                                                },
                                                "has_paypal_subscription": {
                                                    "type": "boolean",
                                                    "description": "Kennzeichen, ob eine PayPal-Subscription-ID vorhanden ist."
                                                },
                                                "detail_count": {
                                                    "type": "integer",
                                                    "description": "Anzahl der Positionen zur Abonnement-Bestellung."
                                                },
                                                "history_count": {
                                                    "type": "integer",
                                                    "description": "Anzahl der Historieneintraege zur Abonnement-Bestellung."
                                                },
                                                "customer_notice": {
                                                    "type": "string",
                                                    "description": "Kundenbemerkung aus der Backend-Ansicht."
                                                },
                                                "internal_notice": {
                                                    "type": "string",
                                                    "description": "Interne Notiz aus der Backend-Ansicht."
                                                },
                                                "delivery_address": {
                                                    "$ref": "#/properties/data/properties/address"
                                                },
                                                "billing_address": {
                                                    "$ref": "#/properties/data/properties/address"
                                                },
                                                "details": {
                                                    "type": "array",
                                                    "description": "Positionen der Abonnement-Bestellung.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "description": "Interne ID der Position."
                                                            },
                                                            "subscription_order_id": {
                                                                "type": "integer",
                                                                "description": "ID der zugehoerigen Abonnement-Bestellung."
                                                            },
                                                            "product_id": {
                                                                "type": "integer",
                                                                "description": "ID des Artikels."
                                                            },
                                                            "product_location": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ],
                                                                "description": "API-URL zum Artikel."
                                                            },
                                                            "variation_id": {
                                                                "type": "integer",
                                                                "description": "ID der Artikelvariante."
                                                            },
                                                            "variation_location": {
                                                                "type": [
                                                                    "string",
                                                                    "null"
                                                                ],
                                                                "description": "API-URL zur Artikelvariante."
                                                            },
                                                            "plan_id": {
                                                                "type": "integer",
                                                                "description": "ID des Abonnement-Plans."
                                                            },
                                                            "quantity": {
                                                                "type": "integer",
                                                                "description": "Menge der Position."
                                                            },
                                                            "price": {
                                                                "type": "number",
                                                                "description": "Preis der Position."
                                                            },
                                                            "tax_rate": {
                                                                "type": "number",
                                                                "description": "Steuersatz der Position."
                                                            },
                                                            "differential_tax": {
                                                                "type": "boolean",
                                                                "description": "Kennzeichen fuer Differenzbesteuerung."
                                                            },
                                                            "article_type": {
                                                                "type": "integer",
                                                                "description": "Interner Artikeltyp der Position."
                                                            }
                                                        },
                                                        "description": "Detaildaten zum Datensatz."
                                                    }
                                                },
                                                "history": {
                                                    "type": "array",
                                                    "description": "Historie der Abonnement-Bestellung.",
                                                    "items": {
                                                        "type": "object",
                                                        "properties": {
                                                            "id": {
                                                                "type": "integer",
                                                                "description": "Interne ID des Historieneintrags."
                                                            },
                                                            "subscription_order_id": {
                                                                "type": "integer",
                                                                "description": "ID der zugehoerigen Abonnement-Bestellung."
                                                            },
                                                            "user": {
                                                                "type": "string",
                                                                "description": "Benutzer oder System, das den Eintrag erzeugt hat."
                                                            },
                                                            "timestamp": {
                                                                "type": "string",
                                                                "description": "Zeitstempel des Historieneintrags."
                                                            },
                                                            "log_name": {
                                                                "type": "string",
                                                                "description": "Text des Historieneintrags."
                                                            }
                                                        },
                                                        "description": "Historie zum Datensatz."
                                                    }
                                                },
                                                "address": {
                                                    "type": "object",
                                                    "description": "Adressdaten der Abonnement-Bestellung.",
                                                    "properties": {
                                                        "salutation": {
                                                            "type": "string",
                                                            "description": "Anrede."
                                                        },
                                                        "firstname": {
                                                            "type": "string",
                                                            "description": "Vorname."
                                                        },
                                                        "lastname": {
                                                            "type": "string",
                                                            "description": "Nachname."
                                                        },
                                                        "company": {
                                                            "type": "string",
                                                            "description": "Firma."
                                                        },
                                                        "addition": {
                                                            "type": "string",
                                                            "description": "Adresszusatz."
                                                        },
                                                        "street": {
                                                            "type": "string",
                                                            "description": "Strasse."
                                                        },
                                                        "street_number": {
                                                            "type": "string",
                                                            "description": "Hausnummer."
                                                        },
                                                        "zip": {
                                                            "type": "string",
                                                            "description": "Postleitzahl."
                                                        },
                                                        "city": {
                                                            "type": "string",
                                                            "description": "Ort."
                                                        },
                                                        "state": {
                                                            "type": "string",
                                                            "description": "Bundesland oder Region."
                                                        },
                                                        "country": {
                                                            "type": "string",
                                                            "description": "Land."
                                                        },
                                                        "country_id": {
                                                            "type": "integer",
                                                            "description": "ID des Landes."
                                                        },
                                                        "email": {
                                                            "type": "string",
                                                            "description": "E-Mail-Adresse."
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "request": {
                                        "method": "GET",
                                        "path": "/api/v2/private/subscriptionorders/42?details=true"
                                    },
                                    "response": {
                                        "status": "ok",
                                        "data": {
                                            "id": 42,
                                            "location": "https://example.test/api/v2/private/subscriptionorders/42",
                                            "order_number": "A-10042",
                                            "date": "2026-06-01",
                                            "next_timestamp": 1780272000,
                                            "status": 1,
                                            "status_name": "active",
                                            "customer_id": 123,
                                            "plan_id": 2,
                                            "interval_id": 1,
                                            "interval_name": "Monatlich",
                                            "frequency": 1,
                                            "frequency_unit": 2,
                                            "product_id": 4711,
                                            "variation_id": 0,
                                            "quantity": 1,
                                            "item_price": 19.95,
                                            "currency": "EUR",
                                            "total_net": 16.76,
                                            "total_gross": 19.95,
                                            "has_paypal_subscription": true,
                                            "detail_count": 1,
                                            "history_count": 1,
                                            "delivery_address": {
                                                "firstname": "Max",
                                                "lastname": "Mustermann",
                                                "email": "max@example.test"
                                            },
                                            "billing_address": {
                                                "firstname": "Max",
                                                "lastname": "Mustermann",
                                                "email": "max@example.test"
                                            },
                                            "details": [
                                                {
                                                    "id": 7,
                                                    "subscription_order_id": 42,
                                                    "product_id": 4711,
                                                    "quantity": 1,
                                                    "price": 19.95
                                                }
                                            ],
                                            "history": [
                                                {
                                                    "id": 9,
                                                    "subscription_order_id": 42,
                                                    "user": "system",
                                                    "timestamp": "1780272000",
                                                    "log_name": "Created"
                                                }
                                            ]
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Abonnement-Bestellung abrufen",
                "description": "Gibt eine einzelne Abonnement-Bestellung mit Adressen, Positionen und Historie zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSubscriptionordersDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/subscriptionorders/search": {
            "get": {
                "tags": [
                    "subscriptionorders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "description": "Suchantwort fuer Abonnement-Bestellungen.",
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "description": "Status der API-Antwort.",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "description": "Liste der gefundenen Abonnement-Bestellungen.",
                                            "items": {
                                                "type": "object",
                                                "description": "Abonnement-Bestellung.",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "description": "Interne ID der Abonnement-Bestellung."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht der Abonnement-Bestellung."
                                                    },
                                                    "order_number": {
                                                        "type": "string",
                                                        "description": "Abo-Nr. aus der Backend-Ansicht."
                                                    },
                                                    "date": {
                                                        "type": "string",
                                                        "description": "Datum der Abonnement-Bestellung."
                                                    },
                                                    "next_timestamp": {
                                                        "type": "integer",
                                                        "description": "Zeitstempel fuer den naechsten Zyklus bzw. die naechste Bestellung."
                                                    },
                                                    "next_timestamp_type": {
                                                        "type": "integer",
                                                        "description": "Typ der Berechnung fuer den naechsten Zyklus."
                                                    },
                                                    "status": {
                                                        "type": "integer",
                                                        "description": "Interner Status der Abonnement-Bestellung."
                                                    },
                                                    "status_name": {
                                                        "type": "string",
                                                        "description": "Lesbarer Name des Abonnement-Status."
                                                    },
                                                    "customer_id": {
                                                        "type": "integer",
                                                        "description": "ID des Kunden."
                                                    },
                                                    "customer_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "API-URL zum Kunden."
                                                    },
                                                    "custgroup_id": {
                                                        "type": "integer",
                                                        "description": "ID der Kundengruppe."
                                                    },
                                                    "custgroup_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "API-URL zur Kundengruppe."
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "description": "ID des Multishops."
                                                    },
                                                    "plan_id": {
                                                        "type": "integer",
                                                        "description": "ID des Abonnement-Plans."
                                                    },
                                                    "plan_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "API-URL zum Abonnement-Plan."
                                                    },
                                                    "interval_id": {
                                                        "type": "integer",
                                                        "description": "ID des Abonnement-Intervalls."
                                                    },
                                                    "interval_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "API-URL zum Abonnement-Intervall."
                                                    },
                                                    "interval_name": {
                                                        "type": "string",
                                                        "description": "Name des Intervalls aus der Backend-Spalte Intervall."
                                                    },
                                                    "frequency": {
                                                        "type": "integer",
                                                        "description": "Frequenz des Abonnement-Intervalls."
                                                    },
                                                    "frequency_unit": {
                                                        "type": "integer",
                                                        "description": "Einheit der Frequenz des Abonnement-Intervalls."
                                                    },
                                                    "minimum_order_count": {
                                                        "type": "integer",
                                                        "description": "Mindestanzahl der auszufuehrenden Bestellungen."
                                                    },
                                                    "maximum_order_count": {
                                                        "type": "integer",
                                                        "description": "Maximalanzahl der auszufuehrenden Bestellungen."
                                                    },
                                                    "product_id": {
                                                        "type": "integer",
                                                        "description": "ID des Artikels."
                                                    },
                                                    "product_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "API-URL zum Artikel."
                                                    },
                                                    "variation_id": {
                                                        "type": "integer",
                                                        "description": "ID der Artikelvariante."
                                                    },
                                                    "variation_location": {
                                                        "type": [
                                                            "string",
                                                            "null"
                                                        ],
                                                        "description": "API-URL zur Artikelvariante."
                                                    },
                                                    "quantity": {
                                                        "type": "integer",
                                                        "description": "Menge der Abonnement-Position."
                                                    },
                                                    "item_price": {
                                                        "type": "number",
                                                        "description": "Einzelpreis der Abonnement-Position."
                                                    },
                                                    "tax_rate": {
                                                        "type": "number",
                                                        "description": "Steuersatz der Abonnement-Position."
                                                    },
                                                    "currency": {
                                                        "type": "string",
                                                        "description": "Waehrung der Abonnement-Bestellung."
                                                    },
                                                    "total_net": {
                                                        "type": "number",
                                                        "description": "Nettosumme der Abonnement-Bestellung."
                                                    },
                                                    "total_gross": {
                                                        "type": "number",
                                                        "description": "Bruttosumme der Abonnement-Bestellung."
                                                    },
                                                    "voucher_total": {
                                                        "type": "number",
                                                        "description": "Gutscheinsumme der Abonnement-Bestellung."
                                                    },
                                                    "shipping_name": {
                                                        "type": "string",
                                                        "description": "Versandart aus der Backend-Spalte Versandart."
                                                    },
                                                    "shipping_costs": {
                                                        "type": "number",
                                                        "description": "Versandkosten aus der Backend-Spalte Versandkosten."
                                                    },
                                                    "payment_name": {
                                                        "type": "string",
                                                        "description": "Zahlungsart aus der Backend-Spalte Zahlungsart."
                                                    },
                                                    "payment_costs": {
                                                        "type": "number",
                                                        "description": "Kosten der Zahlungsart."
                                                    },
                                                    "payment_module": {
                                                        "type": "string",
                                                        "description": "Technisches Modul der Zahlungsart."
                                                    },
                                                    "has_paypal_subscription": {
                                                        "type": "boolean",
                                                        "description": "Kennzeichen, ob eine PayPal-Subscription-ID vorhanden ist."
                                                    },
                                                    "detail_count": {
                                                        "type": "integer",
                                                        "description": "Anzahl der Positionen zur Abonnement-Bestellung."
                                                    },
                                                    "history_count": {
                                                        "type": "integer",
                                                        "description": "Anzahl der Historieneintraege zur Abonnement-Bestellung."
                                                    }
                                                }
                                            }
                                        },
                                        "meta": {
                                            "type": "object",
                                            "description": "Metadaten zur Listenabfrage.",
                                            "properties": {
                                                "total": {
                                                    "type": "integer",
                                                    "description": "Gesamtanzahl der passenden Datensaetze."
                                                },
                                                "limit": {
                                                    "type": "integer",
                                                    "description": "Verwendetes Limit."
                                                },
                                                "offset": {
                                                    "type": "integer",
                                                    "description": "Verwendeter Offset."
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "request": {
                                        "method": "GET",
                                        "path": "/api/v2/private/subscriptionorders/search?value=A-10042&limit=10"
                                    },
                                    "response": {
                                        "status": "ok",
                                        "data": [
                                            {
                                                "id": 42,
                                                "location": "https://example.test/api/v2/private/subscriptionorders/42",
                                                "order_number": "A-10042",
                                                "date": "2026-06-01",
                                                "next_timestamp": 1780272000,
                                                "status": 1,
                                                "status_name": "active",
                                                "customer_id": 123,
                                                "plan_id": 2,
                                                "interval_id": 1,
                                                "interval_name": "Monatlich",
                                                "frequency": 1,
                                                "frequency_unit": 2,
                                                "product_id": 4711,
                                                "variation_id": 0,
                                                "quantity": 1,
                                                "item_price": 19.95,
                                                "currency": "EUR",
                                                "total_net": 16.76,
                                                "total_gross": 19.95,
                                                "has_paypal_subscription": true,
                                                "detail_count": 1,
                                                "history_count": 2
                                            }
                                        ],
                                        "meta": {
                                            "total": 1,
                                            "limit": 10,
                                            "offset": 0
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Abonnement-Bestellungen suchen",
                "description": "Sucht Abonnement-Bestellungen nach Abo-Nr., E-Mail, Kundenname oder Bemerkung.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSubscriptionordersSearchPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/subscriptionplans": {
            "get": {
                "tags": [
                    "subscriptionplans"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/subscriptionplans/1",
                                            "name": "Abo Standard",
                                            "status": 1,
                                            "status_name": "active",
                                            "minimum_cycles": 1,
                                            "maximum_cycles": 0,
                                            "interval_ids": [
                                                1,
                                                2
                                            ],
                                            "description": "Standard-Abonnement",
                                            "checkout_note": "Hinweis im Checkout",
                                            "interval_locations": [
                                                {
                                                    "interval_id": 1,
                                                    "interval_location": "https://localhost/shop/api/v2/private/subscriptionintervals/1"
                                                }
                                            ]
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Subscriptionplans abrufen.",
                "description": "Liefert eine paginierte Liste fuer Subscriptionplans.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetSubscriptionplansPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "subscriptionplans"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    }
                                },
                                "example": {
                                    "name": "Abo Standard",
                                    "status": 1,
                                    "description": "Standard-Abonnement",
                                    "checkout_note": "Hinweis im Checkout",
                                    "minimum_cycles": 1,
                                    "maximum_cycles": 0,
                                    "interval_ids": [
                                        1,
                                        2
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Subscriptionplans anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Subscriptionplans.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostSubscriptionplansPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Abo Standard"
                                    },
                                    "status": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "description": {
                                        "type": "string",
                                        "example": "Standard-Abonnement"
                                    },
                                    "checkout_note": {
                                        "type": "string",
                                        "example": "Hinweis im Checkout"
                                    },
                                    "minimum_cycles": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "maximum_cycles": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "interval_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/subscriptionplans/{id}": {
            "get": {
                "tags": [
                    "subscriptionplans"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/subscriptionplans/1",
                                        "name": "Abo Standard",
                                        "status": 1,
                                        "status_name": "active",
                                        "minimum_cycles": 1,
                                        "maximum_cycles": 0,
                                        "interval_ids": [
                                            1,
                                            2
                                        ],
                                        "description": "Standard-Abonnement",
                                        "checkout_note": "Hinweis im Checkout",
                                        "interval_locations": [
                                            {
                                                "interval_id": 1,
                                                "interval_location": "https://localhost/shop/api/v2/private/subscriptionintervals/1"
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Subscriptionplans Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Subscriptionplans.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetSubscriptionplansDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "subscriptionplans"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object"
                                        }
                                    }
                                },
                                "example": {
                                    "name": "Abo Standard",
                                    "status": 1,
                                    "description": "Standard-Abonnement",
                                    "checkout_note": "Hinweis im Checkout",
                                    "minimum_cycles": 1,
                                    "maximum_cycles": 0,
                                    "interval_ids": [
                                        1,
                                        2
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Subscriptionplans aktualisieren.",
                "description": "Schreibt die uebergebenen Felder fuer Subscriptionplans.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutSubscriptionplansDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "example": "Abo Standard"
                                    },
                                    "status": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "description": {
                                        "type": "string",
                                        "example": "Standard-Abonnement"
                                    },
                                    "checkout_note": {
                                        "type": "string",
                                        "example": "Hinweis im Checkout"
                                    },
                                    "minimum_cycles": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "maximum_cycles": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "interval_ids": {
                                        "type": "array",
                                        "items": {
                                            "type": "integer"
                                        },
                                        "example": [
                                            1,
                                            2
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/subscriptionplans/search": {
            "get": {
                "tags": [
                    "subscriptionplans"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/subscriptionplans/1",
                                            "name": "Abo Standard",
                                            "status": 1,
                                            "minimum_cycles": 1,
                                            "maximum_cycles": 0,
                                            "interval_ids": [
                                                1,
                                                2
                                            ]
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Subscriptionplans suchen.",
                "description": "Sucht Datensaetze fuer Subscriptionplans anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetSubscriptionplansSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/supplierorders": {
            "get": {
                "tags": [
                    "supplierorders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Antwort auf GET /private/supplierorders - Lieferantenbestellungen",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "supplier_id": {
                                                "type": "integer"
                                            },
                                            "supplier_location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "depot_id": {
                                                "type": "integer"
                                            },
                                            "status": {
                                                "type": "integer"
                                            },
                                            "status_name": {
                                                "type": "string"
                                            },
                                            "timestamp": {
                                                "type": "integer"
                                            },
                                            "created_at": {
                                                "type": "string",
                                                "format": "date-time"
                                            },
                                            "user": {
                                                "type": "string"
                                            },
                                            "total": {
                                                "type": "number"
                                            },
                                            "delivery_date": {
                                                "type": "string",
                                                "format": "date"
                                            },
                                            "position_count": {
                                                "type": "integer"
                                            },
                                            "quantity_count": {
                                                "type": "integer"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 123,
                                        "location": "https://example.com/api/v2/private/supplierorders/123",
                                        "supplier_id": 7,
                                        "supplier_location": "https://example.com/api/v2/private/suppliers/7",
                                        "depot_id": 1,
                                        "status": 0,
                                        "status_name": "open",
                                        "timestamp": 1767225600,
                                        "created_at": "2026-01-01T00:00:00+01:00",
                                        "user": "Admin",
                                        "total": 149.7,
                                        "delivery_date": "2026-01-15",
                                        "position_count": 1,
                                        "quantity_count": 10
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Mehrere Lieferantenbestellungen abrufen.",
                "description": "Liefert Lieferantenbestellungen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSupplierordersPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "supplier_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Filtert nach Lieferanten-ID"
                    },
                    {
                        "name": "status",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Filtert nach Status"
                    },
                    {
                        "name": "depot_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Filtert nach Lager-ID"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden Positionen mit zurueckgegeben"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "supplierorders.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "supplierorders.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/supplierorders/{id}": {
            "get": {
                "tags": [
                    "supplierorders"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Antwort auf GET /private/supplierorders/{id} - Lieferantenbestellung",
                                    "properties": {
                                        "id": {
                                            "type": "integer"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "supplier_id": {
                                            "type": "integer"
                                        },
                                        "supplier_location": {
                                            "type": "string",
                                            "format": "uri"
                                        },
                                        "depot_id": {
                                            "type": "integer"
                                        },
                                        "status": {
                                            "type": "integer"
                                        },
                                        "status_name": {
                                            "type": "string"
                                        },
                                        "timestamp": {
                                            "type": "integer"
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "format": "date-time"
                                        },
                                        "user": {
                                            "type": "string"
                                        },
                                        "total": {
                                            "type": "number"
                                        },
                                        "delivery_date": {
                                            "type": "string",
                                            "format": "date"
                                        },
                                        "position_count": {
                                            "type": "integer"
                                        },
                                        "quantity_count": {
                                            "type": "integer"
                                        },
                                        "notes": {
                                            "type": "string"
                                        },
                                        "sent_by_email": {
                                            "type": "boolean"
                                        },
                                        "purchase_price_action": {
                                            "type": "integer"
                                        },
                                        "invoice_number": {
                                            "type": "string"
                                        },
                                        "invoice_file": {
                                            "type": "string"
                                        },
                                        "paid": {
                                            "type": "boolean"
                                        },
                                        "paid_date": {
                                            "type": "string",
                                            "format": "date"
                                        },
                                        "details": {
                                            "type": "array",
                                            "description": "Positionen mit historischen Variantendaten, wenn details=true gesetzt ist",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer"
                                                    },
                                                    "product_id": {
                                                        "type": "integer"
                                                    },
                                                    "variation_id": {
                                                        "type": "integer"
                                                    },
                                                    "variation_name": {
                                                        "type": "string"
                                                    },
                                                    "variation_data": {
                                                        "type": "array",
                                                        "items": {
                                                            "type": "object"
                                                        }
                                                    },
                                                    "quantity": {
                                                        "type": "integer"
                                                    },
                                                    "price": {
                                                        "type": "number"
                                                    }
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://example.com/api/v2/private/supplierorders/123",
                                    "supplier_id": 7,
                                    "supplier_location": "https://example.com/api/v2/private/suppliers/7",
                                    "depot_id": 1,
                                    "status": 2,
                                    "status_name": "partially_received",
                                    "timestamp": 1767225600,
                                    "created_at": "2026-01-01T00:00:00+01:00",
                                    "user": "Admin",
                                    "total": 149.7,
                                    "delivery_date": "2026-01-15",
                                    "position_count": 1,
                                    "quantity_count": 10,
                                    "notes": "Please deliver quickly",
                                    "sent_by_email": false,
                                    "purchase_price_action": 0,
                                    "invoice_number": "RE-123",
                                    "invoice_file": "",
                                    "paid": false,
                                    "paid_date": "0000-00-00",
                                    "details": [
                                        {
                                            "id": 456,
                                            "product_id": 29,
                                            "variation_id": 77,
                                            "variation_name": "Orange / S / Cotton",
                                            "variation_data": [
                                                {
                                                    "group_id": 138,
                                                    "group_name": "Color",
                                                    "item_id": 405,
                                                    "item_name": "Orange",
                                                    "legacy_type": "color"
                                                },
                                                {
                                                    "group_id": 129,
                                                    "group_name": "Size",
                                                    "item_id": 378,
                                                    "item_name": "S",
                                                    "legacy_type": "size"
                                                },
                                                {
                                                    "group_id": 150,
                                                    "group_name": "Material",
                                                    "item_id": 450,
                                                    "item_name": "Cotton",
                                                    "legacy_type": ""
                                                }
                                            ],
                                            "quantity": 10,
                                            "price": 14.97
                                        }
                                    ]
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Lieferantenbestellung abrufen.",
                "description": "Liefert eine Lieferantenbestellung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSupplierordersDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Lieferantenbestellung-ID"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden Positionen mit zurueckgegeben"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "supplierorders.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "supplierorders.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/suppliers": {
            "get": {
                "tags": [
                    "suppliers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Liste von Lieferanten",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer",
                                                "description": "Eindeutige Lieferant-ID"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri",
                                                "description": "API-Link zum Lieferanten",
                                                "example": "https://localhost/shop/api/v2/private/suppliers/123"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 42,
                                        "location": "https://shop.local/api/v2/private/suppliers/42"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Lieferanten abrufen.",
                "description": "Liefert Daten fuer mehrere Lieferanten.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSuppliersPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "object",
                            "properties": {
                                "aktiv": {
                                    "type": "integer"
                                }
                            }
                        },
                        "description": "Filtert nach aktiv ja/nein"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "suppliers.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "suppliers.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "suppliers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Lieferant erstellen.",
                "description": "Erstellt einen Lieferanten.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostSuppliersPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Request-Body fuer POST /private/suppliers.",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Firmenname"
                                    },
                                    "street": {
                                        "type": "string",
                                        "description": "Strasse und Hausnummer"
                                    },
                                    "zip": {
                                        "type": "string",
                                        "description": "PLZ"
                                    },
                                    "city": {
                                        "type": "string",
                                        "description": "Ort"
                                    },
                                    "country": {
                                        "type": "string",
                                        "description": "Land"
                                    },
                                    "firstname": {
                                        "type": "string",
                                        "description": "Ansprechpartner Vorname"
                                    },
                                    "lastname": {
                                        "type": "string",
                                        "description": "Ansprechpartner Nachname"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "description": "Telefonnummer"
                                    },
                                    "fax": {
                                        "type": "string",
                                        "description": "Faxnummer"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "E-Mail-Adresse"
                                    },
                                    "website": {
                                        "type": "string",
                                        "format": "uri",
                                        "description": "Webseite"
                                    },
                                    "iban": {
                                        "type": "string",
                                        "description": "IBAN"
                                    },
                                    "bic": {
                                        "type": "string",
                                        "description": "BIC"
                                    },
                                    "info": {
                                        "type": "string",
                                        "description": "Interne Information"
                                    },
                                    "customer_number": {
                                        "type": "string",
                                        "description": "Eigene Kundennummer beim Lieferanten"
                                    },
                                    "availability_auto": {
                                        "type": "boolean",
                                        "description": "Automatische Aenderung des Lieferstatus fuer Produkte dieses Lieferanten aktivieren"
                                    },
                                    "availability_on_stock_id": {
                                        "type": "integer",
                                        "description": "Lieferbarkeits-ID bei Bestand ueber Grenze"
                                    },
                                    "availability_on_low_stock_id": {
                                        "type": "integer",
                                        "description": "Lieferbarkeits-ID bei Bestand unter Grenze"
                                    },
                                    "availability_on_no_stock_id": {
                                        "type": "integer",
                                        "description": "Lieferbarkeits-ID bei keinem Bestand"
                                    },
                                    "availability_buy_on_zero_stock_id": {
                                        "type": "integer",
                                        "description": "Lieferbarkeits-ID fuer Kauf bei Bestand 0"
                                    },
                                    "availability_low_stock_limit": {
                                        "type": "integer",
                                        "description": "Grenze fuer Bestand unter Grenze"
                                    },
                                    "stock_includes_inflow": {
                                        "type": "boolean",
                                        "description": "Warenzulauf bereits als Bestand einbeziehen"
                                    },
                                    "delivery_time": {
                                        "type": "integer",
                                        "description": "Durchschnittliche Lieferzeit in Tagen"
                                    },
                                    "active": {
                                        "type": "boolean",
                                        "description": "Lieferant ist aktiv"
                                    }
                                },
                                "required": [
                                    "name"
                                ]
                            },
                            "example": {
                                "name": "Muster Lieferant GmbH",
                                "street": "Musterstrasse 1",
                                "zip": "12345",
                                "city": "Musterstadt",
                                "country": "Deutschland",
                                "firstname": "Max",
                                "lastname": "Mustermann",
                                "phone": "+49 123 456789",
                                "email": "info@example.com",
                                "website": "https://example.com",
                                "customer_number": "KD-12345",
                                "availability_auto": true,
                                "availability_on_stock_id": 1,
                                "availability_on_low_stock_id": 2,
                                "availability_on_no_stock_id": 3,
                                "availability_buy_on_zero_stock_id": 4,
                                "availability_low_stock_limit": 5,
                                "stock_includes_inflow": true,
                                "delivery_time": 5,
                                "active": true
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "suppliers.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "suppliers.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/suppliers/{id}": {
            "get": {
                "tags": [
                    "suppliers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Antwort auf GET /private/suppliers/{id} - Lieferantendetails",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Eindeutige Lieferant-ID"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API-Link zum Lieferanten"
                                        },
                                        "name": {
                                            "type": "string",
                                            "description": "Firmenname"
                                        },
                                        "street": {
                                            "type": "string",
                                            "description": "Strasse und Hausnummer"
                                        },
                                        "zip": {
                                            "type": "string",
                                            "description": "PLZ"
                                        },
                                        "city": {
                                            "type": "string",
                                            "description": "Ort"
                                        },
                                        "country": {
                                            "type": "string",
                                            "description": "Land"
                                        },
                                        "firstname": {
                                            "type": "string",
                                            "description": "Ansprechpartner Vorname"
                                        },
                                        "lastname": {
                                            "type": "string",
                                            "description": "Ansprechpartner Nachname"
                                        },
                                        "phone": {
                                            "type": "string",
                                            "description": "Telefonnummer"
                                        },
                                        "fax": {
                                            "type": "string",
                                            "description": "Faxnummer"
                                        },
                                        "email": {
                                            "type": "string",
                                            "format": "email",
                                            "description": "E-Mail-Adresse"
                                        },
                                        "website": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "Webseite"
                                        },
                                        "iban": {
                                            "type": "string",
                                            "description": "IBAN"
                                        },
                                        "bic": {
                                            "type": "string",
                                            "description": "BIC"
                                        },
                                        "info": {
                                            "type": "string",
                                            "description": "Interne Information"
                                        },
                                        "customer_number": {
                                            "type": "string",
                                            "description": "Eigene Kundennummer beim Lieferanten"
                                        },
                                        "availability_auto": {
                                            "type": "boolean",
                                            "description": "Automatische Aenderung des Lieferstatus fuer Produkte dieses Lieferanten aktivieren"
                                        },
                                        "availability_on_stock_id": {
                                            "type": "integer",
                                            "description": "Lieferbarkeits-ID bei Bestand ueber Grenze"
                                        },
                                        "availability_on_low_stock_id": {
                                            "type": "integer",
                                            "description": "Lieferbarkeits-ID bei Bestand unter Grenze"
                                        },
                                        "availability_on_no_stock_id": {
                                            "type": "integer",
                                            "description": "Lieferbarkeits-ID bei keinem Bestand"
                                        },
                                        "availability_buy_on_zero_stock_id": {
                                            "type": "integer",
                                            "description": "Lieferbarkeits-ID fuer Kauf bei Bestand 0"
                                        },
                                        "availability_low_stock_limit": {
                                            "type": "integer",
                                            "description": "Grenze fuer Bestand unter Grenze"
                                        },
                                        "stock_includes_inflow": {
                                            "type": "boolean",
                                            "description": "Warenzulauf bereits als Bestand einbeziehen"
                                        },
                                        "delivery_time": {
                                            "type": "integer",
                                            "description": "Durchschnittliche Lieferzeit in Tagen"
                                        },
                                        "active": {
                                            "type": "boolean",
                                            "description": "Lieferant ist aktiv"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 42,
                                    "location": "https://shop.local/api/v2/private/suppliers/42",
                                    "name": "Muster Lieferant GmbH",
                                    "street": "Musterstrasse 1",
                                    "zip": "12345",
                                    "city": "Musterstadt",
                                    "country": "Deutschland",
                                    "firstname": "Max",
                                    "lastname": "Mustermann",
                                    "phone": "+49 123 456789",
                                    "fax": "",
                                    "email": "info@example.com",
                                    "website": "https://example.com",
                                    "iban": "DE02120300000000202051",
                                    "bic": "BYLADEM1001",
                                    "info": "Interner Hinweis",
                                    "customer_number": "KD-12345",
                                    "availability_auto": true,
                                    "availability_on_stock_id": 1,
                                    "availability_on_low_stock_id": 2,
                                    "availability_on_no_stock_id": 3,
                                    "availability_buy_on_zero_stock_id": 4,
                                    "availability_low_stock_limit": 5,
                                    "stock_includes_inflow": true,
                                    "delivery_time": 5,
                                    "active": true
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Lieferanten abrufen.",
                "description": "Liefert Daten zu einem Lieferanten.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSuppliersDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Lieferant-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "suppliers.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "suppliers.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "suppliers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Lieferanten aktualisieren.",
                "description": "Aktualisiert die Daten eines Lieferanten.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutSuppliersDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Lieferant-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Request-Body fuer PUT /private/suppliers/{id}. Alle Felder sind optional.",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Firmenname"
                                    },
                                    "street": {
                                        "type": "string",
                                        "description": "Strasse und Hausnummer"
                                    },
                                    "zip": {
                                        "type": "string",
                                        "description": "PLZ"
                                    },
                                    "city": {
                                        "type": "string",
                                        "description": "Ort"
                                    },
                                    "country": {
                                        "type": "string",
                                        "description": "Land"
                                    },
                                    "firstname": {
                                        "type": "string",
                                        "description": "Ansprechpartner Vorname"
                                    },
                                    "lastname": {
                                        "type": "string",
                                        "description": "Ansprechpartner Nachname"
                                    },
                                    "phone": {
                                        "type": "string",
                                        "description": "Telefonnummer"
                                    },
                                    "fax": {
                                        "type": "string",
                                        "description": "Faxnummer"
                                    },
                                    "email": {
                                        "type": "string",
                                        "format": "email",
                                        "description": "E-Mail-Adresse"
                                    },
                                    "website": {
                                        "type": "string",
                                        "format": "uri",
                                        "description": "Webseite"
                                    },
                                    "iban": {
                                        "type": "string",
                                        "description": "IBAN"
                                    },
                                    "bic": {
                                        "type": "string",
                                        "description": "BIC"
                                    },
                                    "info": {
                                        "type": "string",
                                        "description": "Interne Information"
                                    },
                                    "customer_number": {
                                        "type": "string",
                                        "description": "Eigene Kundennummer beim Lieferanten"
                                    },
                                    "availability_auto": {
                                        "type": "boolean",
                                        "description": "Automatische Aenderung des Lieferstatus fuer Produkte dieses Lieferanten aktivieren"
                                    },
                                    "availability_on_stock_id": {
                                        "type": "integer",
                                        "description": "Lieferbarkeits-ID bei Bestand ueber Grenze"
                                    },
                                    "availability_on_low_stock_id": {
                                        "type": "integer",
                                        "description": "Lieferbarkeits-ID bei Bestand unter Grenze"
                                    },
                                    "availability_on_no_stock_id": {
                                        "type": "integer",
                                        "description": "Lieferbarkeits-ID bei keinem Bestand"
                                    },
                                    "availability_buy_on_zero_stock_id": {
                                        "type": "integer",
                                        "description": "Lieferbarkeits-ID fuer Kauf bei Bestand 0"
                                    },
                                    "availability_low_stock_limit": {
                                        "type": "integer",
                                        "description": "Grenze fuer Bestand unter Grenze"
                                    },
                                    "stock_includes_inflow": {
                                        "type": "boolean",
                                        "description": "Warenzulauf bereits als Bestand einbeziehen"
                                    },
                                    "delivery_time": {
                                        "type": "integer",
                                        "description": "Durchschnittliche Lieferzeit in Tagen"
                                    },
                                    "active": {
                                        "type": "boolean",
                                        "description": "Lieferant ist aktiv"
                                    }
                                }
                            },
                            "example": {
                                "name": "Muster Lieferant GmbH",
                                "availability_auto": true,
                                "availability_on_low_stock_id": 2,
                                "availability_low_stock_limit": 5,
                                "delivery_time": 7,
                                "active": true
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "suppliers.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "suppliers.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "suppliers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Einen Lieferanten loeschen.",
                "description": "Loescht einen Lieferanten. Zugeordnete Produkte werden auf Lieferant-ID 0 gesetzt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteSuppliersDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Lieferant-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "suppliers.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "suppliers.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/suppliers/search": {
            "get": {
                "tags": [
                    "suppliers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Suchergebnis fuer Lieferanten",
                                    "items": {
                                        "$ref": "v2/docs/returns/Suppliers/get_supplier.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 42,
                                        "location": "https://shop.local/api/v2/private/suppliers/42",
                                        "name": "Muster Lieferant GmbH",
                                        "street": "Musterstrasse 1",
                                        "zip": "12345",
                                        "city": "Musterstadt",
                                        "country": "Deutschland",
                                        "firstname": "Max",
                                        "lastname": "Mustermann",
                                        "phone": "+49 123 456789",
                                        "fax": "",
                                        "email": "info@example.com",
                                        "website": "https://example.com",
                                        "iban": "DE02120300000000202051",
                                        "bic": "BYLADEM1001",
                                        "info": "Interner Hinweis",
                                        "customer_number": "KD-12345",
                                        "availability_auto": true,
                                        "availability_on_stock_id": 1,
                                        "availability_on_low_stock_id": 2,
                                        "availability_on_no_stock_id": 3,
                                        "availability_buy_on_zero_stock_id": 4,
                                        "availability_low_stock_limit": 5,
                                        "stock_includes_inflow": true,
                                        "delivery_time": 5,
                                        "active": true
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Lieferanten nach einem String.",
                "description": "Sucht in Lieferanten nach Name, Ansprechpartner, PLZ, Ort oder Info.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetSuppliersSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    },
                    {
                        "name": "aktiv",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Aktiv-Status, 0=inaktiv, 1=aktiv"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "suppliers.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "suppliers.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/systememails": {
            "get": {
                "tags": [
                    "systememails"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_systememails_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 2
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 12,
                                            "location": "https://localhost/shop/api/v2/private/systememails/12",
                                            "created_at": "2026-06-11 18:20:00",
                                            "to_email": "kunde@example.com",
                                            "subject": "Bestellbestaetigung",
                                            "order_id": 1001,
                                            "customer_id": 77,
                                            "body": "Plain email body",
                                            "meta": "Rendered email content",
                                            "order_location": "https://localhost/shop/api/v2/private/orders/1001",
                                            "customer_location": "https://localhost/shop/api/v2/private/customers/77"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Systememails abrufen.",
                "description": "Liefert eine paginierte Liste fuer Systememails.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetSystememailsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/systememails/{id}": {
            "get": {
                "tags": [
                    "systememails"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "example": 12
                                        },
                                        "location": {
                                            "type": "string",
                                            "example": "https://localhost/shop/api/v2/private/systememails/12"
                                        },
                                        "created_at": {
                                            "type": "string",
                                            "example": "2026-06-11 18:20:00"
                                        },
                                        "to_email": {
                                            "type": "string",
                                            "example": "kunde@example.com"
                                        },
                                        "subject": {
                                            "type": "string",
                                            "example": "Bestellbestaetigung"
                                        },
                                        "order_id": {
                                            "type": "integer",
                                            "example": 1001
                                        },
                                        "customer_id": {
                                            "type": "integer",
                                            "example": 77
                                        },
                                        "body": {
                                            "type": "string",
                                            "example": "Plain email body"
                                        },
                                        "meta": {
                                            "type": "string",
                                            "example": "Rendered email content"
                                        },
                                        "order_location": {
                                            "type": "string",
                                            "example": "https://localhost/shop/api/v2/private/orders/1001"
                                        },
                                        "customer_location": {
                                            "type": "string",
                                            "example": "https://localhost/shop/api/v2/private/customers/77"
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Systememails Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Systememails.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetSystememailsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "systememails"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Systememails loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Systememails.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteSystememailsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/systememails/search": {
            "get": {
                "tags": [
                    "systememails"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_systememails_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 12,
                                            "location": "https://localhost/shop/api/v2/private/systememails/12",
                                            "created_at": "2026-06-11 18:20:00",
                                            "to_email": "kunde@example.com",
                                            "subject": "Bestellbestaetigung",
                                            "order_id": 1001,
                                            "customer_id": 77
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Systememails suchen.",
                "description": "Sucht Datensaetze fuer Systememails anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetSystememailsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/tablecolumnsetups": {
            "get": {
                "tags": [
                    "tablecolumnsetups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_tablecolumnsetups_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 2
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "products:1:bscolumn_price",
                                            "location": "https://localhost/shop/api/v2/private/tablecolumnsetups/products?column_key=bscolumn_price&user_id=1",
                                            "table_key": "products",
                                            "column_key": "bscolumn_price",
                                            "user_id": 1,
                                            "title": "Preis",
                                            "column_order": 20,
                                            "visible": true,
                                            "width": "120px",
                                            "hideable": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Tablecolumnsetups abrufen.",
                "description": "Liefert eine paginierte Liste fuer Tablecolumnsetups.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetTablecolumnsetupsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/tablecolumnsetups/{id}": {
            "get": {
                "tags": [
                    "tablecolumnsetups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "string",
                                            "example": "products:1:bscolumn_price"
                                        },
                                        "location": {
                                            "type": "string",
                                            "example": "https://localhost/shop/api/v2/private/tablecolumnsetups/products?column_key=bscolumn_price&user_id=1"
                                        },
                                        "table_key": {
                                            "type": "string",
                                            "example": "products"
                                        },
                                        "column_key": {
                                            "type": "string",
                                            "example": "bscolumn_price"
                                        },
                                        "user_id": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "title": {
                                            "type": "string",
                                            "example": "Preis"
                                        },
                                        "column_order": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "visible": {
                                            "type": "boolean",
                                            "example": true
                                        },
                                        "width": {
                                            "type": "string",
                                            "example": "120px"
                                        },
                                        "hideable": {
                                            "type": "boolean",
                                            "example": true
                                        }
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Tablecolumnsetups Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Tablecolumnsetups.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetTablecolumnsetupsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/tablecolumnsetups/search": {
            "get": {
                "tags": [
                    "tablecolumnsetups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_tablecolumnsetups_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "products:1:bscolumn_price",
                                            "location": "https://localhost/shop/api/v2/private/tablecolumnsetups/products?column_key=bscolumn_price&user_id=1",
                                            "table_key": "products",
                                            "column_key": "bscolumn_price",
                                            "user_id": 1,
                                            "title": "Preis",
                                            "column_order": 20,
                                            "visible": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Tablecolumnsetups suchen.",
                "description": "Sucht Datensaetze fuer Tablecolumnsetups anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetTablecolumnsetupsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/taxes": {
            "get": {
                "tags": [
                    "taxes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Antwort auf GET /private/taxes - Steuersaetze",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://example.com/api/v2/private/taxes/1"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Steuersaetze abrufen.",
                "description": "Liefert Daten fuer mehrere Steuersaetze.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetTaxesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "taxes.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "taxes.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "taxes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Steuersatz erstellen.",
                "description": "Erstellt einen Steuersatz.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostTaxesPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Request-Body fuer POST /private/taxes",
                                "required": [
                                    "rate"
                                ],
                                "properties": {
                                    "rate": {
                                        "type": "number",
                                        "description": "Steuersatz in Prozent"
                                    },
                                    "account": {
                                        "type": "string",
                                        "description": "Rahmenkonto"
                                    }
                                }
                            },
                            "example": {
                                "rate": 19,
                                "account": "8400"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "taxes.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "taxes.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/taxes/{id}": {
            "get": {
                "tags": [
                    "taxes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Antwort auf GET /private/taxes/{id} - Steuersatz",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Eindeutige Steuersatz-ID"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API-Link zum Steuersatz"
                                        },
                                        "rate": {
                                            "type": "number",
                                            "description": "Steuersatz in Prozent"
                                        },
                                        "account": {
                                            "type": "string",
                                            "description": "Rahmenkonto"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1,
                                    "location": "https://example.com/api/v2/private/taxes/1",
                                    "rate": 19,
                                    "account": "8400"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Steuersatzes abrufen.",
                "description": "Liefert Daten zu einem Steuersatz.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetTaxesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Steuersatz-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "taxes.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "taxes.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "taxes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Steuersatzes aktualisieren.",
                "description": "Aktualisiert die Daten eines Steuersatzes.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutTaxesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Steuersatz-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Request-Body fuer PUT /private/taxes/{id}. Alle Felder sind optional.",
                                "properties": {
                                    "rate": {
                                        "type": "number",
                                        "description": "Steuersatz in Prozent"
                                    },
                                    "account": {
                                        "type": "string",
                                        "description": "Rahmenkonto"
                                    }
                                }
                            },
                            "example": {
                                "rate": 19,
                                "account": "8400"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "taxes.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "taxes.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "taxes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Einen Steuersatz loeschen.",
                "description": "Loescht einen Steuersatz.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteTaxesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Steuersatz-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "taxes.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "taxes.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/taxes/search": {
            "get": {
                "tags": [
                    "taxes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Antwort auf GET /private/taxes/search - Suchergebnisse",
                                    "items": {
                                        "$ref": "get_tax.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 1,
                                        "location": "https://example.com/api/v2/private/taxes/1",
                                        "rate": 19,
                                        "account": "8400"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Steuersaetzen nach einem Wert.",
                "description": "Sucht in Steuersaetzen nach Steuersatz oder Rahmenkonto.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetTaxesSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "taxes.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "taxes.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/textsnippets": {
            "get": {
                "tags": [
                    "textsnippets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Antwort auf GET /private/textsnippets - Textsnippets",
                                    "items": {
                                        "$ref": "get_textsnippet.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 12,
                                        "location": "https://example.com/api/v2/private/textsnippets/12",
                                        "name": "Footer Hinweis",
                                        "shortcode": "[snippet-12]"
                                    },
                                    {
                                        "id": 13,
                                        "location": "https://example.com/api/v2/private/textsnippets/13",
                                        "name": "Startseite Aktion",
                                        "shortcode": "[snippet-13]"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Textsnippets abrufen.",
                "description": "Liefert Daten fuer mehrere Textsnippets.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetTextsnippetsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "textsnippets.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "textsnippets.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "textsnippets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Textsnippet erstellen.",
                "description": "Erstellt ein Textsnippet. Der Shortcode wird automatisch aus der neuen ID gebildet.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostTextsnippetsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Request-Body fuer POST /private/textsnippets",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Bezeichnung des Textsnippets"
                                    },
                                    "value": {
                                        "type": "string",
                                        "description": "Inhalt des Textsnippets. HTML ist moeglich."
                                    }
                                }
                            },
                            "example": {
                                "name": "Footer Hinweis",
                                "value": "<p>Versandkostenfrei ab 49 EUR.</p>"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "textsnippets.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "textsnippets.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/textsnippets/{id}": {
            "get": {
                "tags": [
                    "textsnippets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Antwort auf GET /private/textsnippets/{id} - Textsnippet",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Eindeutige Textsnippet-ID"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API-Link zum Textsnippet"
                                        },
                                        "name": {
                                            "type": "string",
                                            "description": "Bezeichnung des Textsnippets"
                                        },
                                        "value": {
                                            "type": "string",
                                            "description": "Inhalt des Textsnippets. HTML ist moeglich."
                                        },
                                        "shortcode": {
                                            "type": "string",
                                            "description": "Shortcode zur Verwendung in Contentseiten"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 12,
                                    "location": "https://example.com/api/v2/private/textsnippets/12",
                                    "name": "Footer Hinweis",
                                    "value": "<p>Versandkostenfrei ab 49 EUR.</p>",
                                    "shortcode": "[snippet-12]"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Textsnippets abrufen.",
                "description": "Liefert Daten zu einem Textsnippet inklusive Shortcode.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetTextsnippetsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Textsnippet-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "textsnippets.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "textsnippets.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "textsnippets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Textsnippets aktualisieren.",
                "description": "Aktualisiert Bezeichnung und/oder Inhalt eines Textsnippets.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutTextsnippetsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Textsnippet-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Request-Body fuer PUT /private/textsnippets/{id}",
                                "properties": {
                                    "name": {
                                        "type": "string",
                                        "description": "Bezeichnung des Textsnippets"
                                    },
                                    "value": {
                                        "type": "string",
                                        "description": "Inhalt des Textsnippets. HTML ist moeglich."
                                    }
                                }
                            },
                            "example": {
                                "name": "Footer Hinweis",
                                "value": "<p>Versandkostenfrei ab 59 EUR.</p>"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "textsnippets.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "textsnippets.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "textsnippets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Ein Textsnippet loeschen.",
                "description": "Loescht ein Textsnippet. Bereits in Contentseiten verwendete Shortcodes werden nicht automatisch entfernt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteTextsnippetsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Textsnippet-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "textsnippets.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "textsnippets.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/textsnippets/search": {
            "get": {
                "tags": [
                    "textsnippets"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Antwort auf GET /private/textsnippets/search - Suchergebnisse fuer Textsnippets",
                                    "items": {
                                        "$ref": "get_textsnippet.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 12,
                                        "location": "https://example.com/api/v2/private/textsnippets/12",
                                        "name": "Footer Hinweis",
                                        "value": "<p>Versandkostenfrei ab 49 EUR.</p>",
                                        "shortcode": "[snippet-12]"
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Textsnippets nach einem String.",
                "description": "Sucht in Bezeichnung und Inhalt von Textsnippets.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetTextsnippetsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "textsnippets.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "textsnippets.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themeareaparams": {
            "get": {
                "tags": [
                    "themeareaparams"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "docs/returns/Themeareaparams/get_themeareaparams_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/themeareaparams/1",
                                            "theme_id": 1,
                                            "area_id": 10,
                                            "name": "header_color",
                                            "label": "Header color",
                                            "parameter_type_id": 1,
                                            "parameter_type_name": "Farbcode"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Themeareaparams abrufen.",
                "description": "Liefert eine paginierte Liste fuer Themeareaparams.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemeareaparamsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themeareaparams.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themeareaparams.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themeareaparams/{id}": {
            "get": {
                "tags": [
                    "themeareaparams"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "docs/returns/Themeareaparams/get_themeareaparams_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/themeareaparams/1",
                                        "theme_id": 1,
                                        "area_id": 10,
                                        "name": "header_color",
                                        "label": "Header color",
                                        "parameter_type_id": 1,
                                        "parameter_type_name": "Farbcode",
                                        "version": "1.0",
                                        "description": "Color used in the header",
                                        "value": "ffffff",
                                        "config_json": "",
                                        "width": "4",
                                        "theme_name": "Default",
                                        "theme_location": "https://localhost/shop/api/v2/private/themes/1",
                                        "theme_area_name": "Header",
                                        "theme_area_location": "https://localhost/shop/api/v2/private/themeareas/10",
                                        "config": null
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Themeareaparams Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Themeareaparams.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemeareaparamsDetailPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themeareaparams.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themeareaparams.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "themeareaparams"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "docs/returns/Themeareaparams/get_themeareaparams_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/themeareaparams/1",
                                        "theme_id": 1,
                                        "area_id": 10,
                                        "name": "header_color",
                                        "label": "Header color",
                                        "parameter_type_id": 1,
                                        "parameter_type_name": "Farbcode",
                                        "version": "1.0",
                                        "description": "Color used in the header",
                                        "value": "ffffff",
                                        "config_json": "",
                                        "width": "4",
                                        "theme_name": "Default",
                                        "theme_location": "https://localhost/shop/api/v2/private/themes/1",
                                        "theme_area_name": "Header",
                                        "theme_area_location": "https://localhost/shop/api/v2/private/themeareas/10",
                                        "config": null
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Wert eines Theme-Area-Parameters aktualisieren.",
                "description": "Aktualisiert den Parameterwert und erzeugt danach die Theme-CSS-Datei neu. Bei Farbparametern werden Rautezeichen entfernt; Radio-Werte muessen einer konfigurierten Option entsprechen.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutThemeareaparamsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Theme-Area-Parameter-ID."
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                    "value"
                                ],
                                "properties": {
                                    "value": {
                                        "type": "string",
                                        "maxLength": 100,
                                        "description": "Neuer Parameterwert. Farbwerte sind leer oder sechsstellig hexadezimal; Radio-Werte muessen einer konfigurierten Option entsprechen."
                                    }
                                }
                            },
                            "example": {
                                "value": "2f80ed"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themeareaparams.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themeareaparams.update"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themeareaparams/search": {
            "get": {
                "tags": [
                    "themeareaparams"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "docs/returns/Themeareaparams/get_themeareaparams_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/themeareaparams/1",
                                            "theme_id": 1,
                                            "area_id": 10,
                                            "name": "header_color",
                                            "label": "Header color",
                                            "parameter_type_id": 1,
                                            "parameter_type_name": "Farbcode"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Themeareaparams suchen.",
                "description": "Sucht Datensaetze fuer Themeareaparams anhand eines Suchbegriffs.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemeareaparamsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themeareaparams.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themeareaparams.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themeareas": {
            "get": {
                "tags": [
                    "themeareas"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "docs/returns/Themeareas/get_themeareas_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/themeareas/1",
                                            "theme_id": 1,
                                            "group_id": 10,
                                            "name": "Header",
                                            "filename": "header.tpl",
                                            "is_file": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Themeareas abrufen.",
                "description": "Liefert eine paginierte Liste fuer Themeareas.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemeareasPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themeareas.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themeareas.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themeareas/{id}": {
            "get": {
                "tags": [
                    "themeareas"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "docs/returns/Themeareas/get_themeareas_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/themeareas/1",
                                        "theme_id": 1,
                                        "group_id": 10,
                                        "name": "Header",
                                        "filename": "header.tpl",
                                        "is_file": true,
                                        "parent_id": 0,
                                        "parent_location": null,
                                        "description": "Header template area",
                                        "active_template_id": 3,
                                        "css_mode": 0,
                                        "has_static_css": false,
                                        "css_code": "",
                                        "locked": false,
                                        "theme_name": "Default",
                                        "theme_location": "https://localhost/shop/api/v2/private/themes/1",
                                        "parameter_count": 4,
                                        "template_file_count": 2
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Themeareas Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Themeareas.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemeareasDetailPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themeareas.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themeareas.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "themeareas"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "docs/returns/Themeareas/get_themeareas_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/themeareas/1",
                                        "theme_id": 1,
                                        "group_id": 10,
                                        "name": "Header",
                                        "filename": "header.tpl",
                                        "is_file": true,
                                        "parent_id": 0,
                                        "parent_location": null,
                                        "description": "Header template area",
                                        "active_template_id": 3,
                                        "css_mode": 0,
                                        "has_static_css": false,
                                        "css_code": "",
                                        "locked": false,
                                        "theme_name": "Default",
                                        "theme_location": "https://localhost/shop/api/v2/private/themes/1",
                                        "parameter_count": 4,
                                        "template_file_count": 2
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "CSS-Einstellungen oder Sperrstatus einer Theme-Area aktualisieren.",
                "description": "Aktualisiert css_code, css_mode und/oder locked. CSS-Aenderungen erzeugen die Theme-CSS-Datei neu und leeren den Frontend-Cache.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutThemeareasDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Theme-Area-ID."
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "additionalProperties": false,
                                "properties": {
                                    "css_code": {
                                        "type": "string",
                                        "description": "Eigener CSS-Code der Theme-Area."
                                    },
                                    "css_mode": {
                                        "type": "integer",
                                        "enum": [
                                            0,
                                            1
                                        ],
                                        "description": "0 erzeugt dynamisches CSS, 1 verwendet statisches CSS."
                                    },
                                    "locked": {
                                        "type": "boolean",
                                        "description": "Manueller Sperrstatus der Theme-Area."
                                    }
                                },
                                "anyOf": [
                                    {
                                        "required": [
                                            "css_code"
                                        ]
                                    },
                                    {
                                        "required": [
                                            "css_mode"
                                        ]
                                    },
                                    {
                                        "required": [
                                            "locked"
                                        ]
                                    }
                                ]
                            },
                            "example": {
                                "css_code": ".product-card { border-radius: 8px; }",
                                "css_mode": 0,
                                "locked": true
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themeareas.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themeareas.update"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themeareas/search": {
            "get": {
                "tags": [
                    "themeareas"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "docs/returns/Themeareas/get_themeareas_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/themeareas/1",
                                            "theme_id": 1,
                                            "group_id": 10,
                                            "name": "Header",
                                            "filename": "header.tpl",
                                            "is_file": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Themeareas suchen.",
                "description": "Sucht Datensaetze fuer Themeareas anhand eines Suchbegriffs.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemeareasSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themeareas.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themeareas.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themeareas/{id}/active-template": {
            "put": {
                "tags": [
                    "themeareas"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "docs/returns/Themeareas/get_themeareas_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/themeareas/1",
                                        "theme_id": 1,
                                        "group_id": 10,
                                        "name": "Header",
                                        "filename": "header.tpl",
                                        "is_file": true,
                                        "parent_id": 0,
                                        "parent_location": null,
                                        "description": "Header template area",
                                        "active_template_id": 3,
                                        "css_mode": 0,
                                        "has_static_css": false,
                                        "css_code": "",
                                        "locked": false,
                                        "theme_name": "Default",
                                        "theme_location": "https://localhost/shop/api/v2/private/themes/1",
                                        "parameter_count": 4,
                                        "template_file_count": 2
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Aktive TPL-Version einer Theme-Area setzen.",
                "description": "Aktiviert eine vorhandene, zur Theme-Area gehoerende TPL-Version, schreibt die aktive TPL-Datei neu und leert den Frontend-Cache.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutThemeareasActive-templatePrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Theme-Area-ID."
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                    "version_id"
                                ],
                                "properties": {
                                    "version_id": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "description": "ID einer vorhandenen TPL-Version dieser Theme-Area."
                                    }
                                }
                            },
                            "example": {
                                "version_id": 42
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themeareas.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themeareas.update"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themeareatpls": {
            "get": {
                "tags": [
                    "themeareatpls"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "docs/returns/Themeareatpls/get_themeareatpls_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/themeareatpls/1",
                                            "area_id": 10,
                                            "version": "1.0",
                                            "last_modified": "2026-01-01 12:00:00",
                                            "is_active_template": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Themeareatpls abrufen.",
                "description": "Liefert eine paginierte Liste fuer Themeareatpls.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemeareatplsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themeareatpls.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themeareatpls.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themeareatpls/{id}": {
            "get": {
                "tags": [
                    "themeareatpls"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "docs/returns/Themeareatpls/get_themeareatpls_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/themeareatpls/1",
                                        "area_id": 10,
                                        "version": "1.0",
                                        "last_modified": "2026-01-01 12:00:00",
                                        "is_active_template": true,
                                        "description": "Initial version",
                                        "value": "<header>...</header>",
                                        "value_length": 20,
                                        "theme_area_locked": true,
                                        "theme_id": 1,
                                        "theme_name": "Default",
                                        "theme_location": "https://localhost/shop/api/v2/private/themes/1",
                                        "theme_area_name": "Header",
                                        "theme_area_filename": "header",
                                        "theme_area_location": "https://localhost/shop/api/v2/private/themeareas/10"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Themeareatpls Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Themeareatpls.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemeareatplsDetailPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themeareatpls.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themeareatpls.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "themeareatpls"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "docs/returns/Themeareatpls/get_themeareatpls_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/themeareatpls/1",
                                        "area_id": 10,
                                        "version": "1.0",
                                        "last_modified": "2026-01-01 12:00:00",
                                        "is_active_template": true,
                                        "description": "Initial version",
                                        "value": "<header>...</header>",
                                        "value_length": 20,
                                        "theme_area_locked": true,
                                        "theme_id": 1,
                                        "theme_name": "Default",
                                        "theme_location": "https://localhost/shop/api/v2/private/themes/1",
                                        "theme_area_name": "Header",
                                        "theme_area_filename": "header",
                                        "theme_area_location": "https://localhost/shop/api/v2/private/themeareas/10"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Bestehende Theme-Area-Dateiversion aktualisieren.",
                "description": "Aktualisiert Code und/oder Beschreibung einer vorhandenen TPL-Version. Die zugehoerige Theme-Area wird gesperrt. Ist die Version aktiv, wird auch die TPL-Datei im Theme-Verzeichnis neu geschrieben. Neue Versionen werden ueber diesen Endpoint niemals angelegt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutThemeareatplsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "ID der TPL-Version."
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "value": {
                                        "type": "string",
                                        "description": "Vollstaendiger neuer TPL-Code der vorhandenen Version.",
                                        "example": "<header class=\"shop-header\">...</header>"
                                    },
                                    "description": {
                                        "type": "string",
                                        "description": "Interne Beschreibung der vorhandenen Version.",
                                        "example": "Header-Anpassung ueber API"
                                    }
                                },
                                "anyOf": [
                                    {
                                        "required": [
                                            "value"
                                        ]
                                    },
                                    {
                                        "required": [
                                            "description"
                                        ]
                                    }
                                ],
                                "additionalProperties": false
                            },
                            "example": {
                                "value": "<header class=\"shop-header\">...</header>",
                                "description": "Header-Anpassung ueber API"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themeareatpls.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themeareatpls.update"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themeareatpls/search": {
            "get": {
                "tags": [
                    "themeareatpls"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "docs/returns/Themeareatpls/get_themeareatpls_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/themeareatpls/1",
                                            "area_id": 10,
                                            "version": "1.0",
                                            "last_modified": "2026-01-01 12:00:00",
                                            "is_active_template": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Themeareatpls suchen.",
                "description": "Sucht Datensaetze fuer Themeareatpls anhand eines Suchbegriffs.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemeareatplsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themeareatpls.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themeareatpls.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themecontentlayouts": {
            "get": {
                "tags": [
                    "themecontentlayouts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_themecontentlayouts_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/themecontentlayouts/1",
                                            "theme_id": 1,
                                            "name": "Standardansicht",
                                            "is_standard": true,
                                            "side_count": 3
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Themecontentlayouts abrufen.",
                "description": "Liefert eine paginierte Liste fuer Themecontentlayouts.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetThemecontentlayoutsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/themecontentlayouts/{id}": {
            "get": {
                "tags": [
                    "themecontentlayouts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "get_themecontentlayouts_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/themecontentlayouts/1",
                                        "theme_id": 1,
                                        "theme_location": "https://localhost/shop/api/v2/private/themes/1",
                                        "theme_name": "Default",
                                        "name": "Standardansicht",
                                        "is_standard": true,
                                        "side_count": 1,
                                        "sides": [
                                            {
                                                "id": 10,
                                                "theme_id": 1,
                                                "layout_id": 1,
                                                "internal_id": 0,
                                                "type": "startpage",
                                                "type_name": "Startseite"
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Themecontentlayouts Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Themecontentlayouts.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetThemecontentlayoutsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/themecontentlayouts/search": {
            "get": {
                "tags": [
                    "themecontentlayouts"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_themecontentlayouts_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/themecontentlayouts/1",
                                            "theme_id": 1,
                                            "name": "Standardansicht",
                                            "is_standard": true,
                                            "side_count": 3
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Themecontentlayouts suchen.",
                "description": "Sucht Datensaetze fuer Themecontentlayouts anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetThemecontentlayoutsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/themecontentlayoutsides": {
            "get": {
                "tags": [
                    "themecontentlayoutsides"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_themecontentlayoutsides_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 10,
                                            "location": "https://localhost/shop/api/v2/private/themecontentlayoutsides/10",
                                            "theme_id": 1,
                                            "layout_id": 1,
                                            "internal_id": 0,
                                            "type": "startpage",
                                            "type_name": "Startseite"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Themecontentlayoutsides abrufen.",
                "description": "Liefert eine paginierte Liste fuer Themecontentlayoutsides.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetThemecontentlayoutsidesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/themecontentlayoutsides/{id}": {
            "get": {
                "tags": [
                    "themecontentlayoutsides"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "get_themecontentlayoutsides_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 10,
                                        "location": "https://localhost/shop/api/v2/private/themecontentlayoutsides/10",
                                        "theme_id": 1,
                                        "theme_location": "https://localhost/shop/api/v2/private/themes/1",
                                        "theme_name": "Default",
                                        "layout_id": 1,
                                        "layout_location": "https://localhost/shop/api/v2/private/themecontentlayouts/1",
                                        "layout_name": "Standardansicht",
                                        "layout_is_standard": true,
                                        "internal_id": 0,
                                        "type": "startpage",
                                        "type_name": "Startseite"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Themecontentlayoutsides Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Themecontentlayoutsides.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetThemecontentlayoutsidesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/themecontentlayoutsides/search": {
            "get": {
                "tags": [
                    "themecontentlayoutsides"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_themecontentlayoutsides_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 10,
                                            "location": "https://localhost/shop/api/v2/private/themecontentlayoutsides/10",
                                            "theme_id": 1,
                                            "layout_id": 1,
                                            "internal_id": 0,
                                            "type": "startpage",
                                            "type_name": "Startseite"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Themecontentlayoutsides suchen.",
                "description": "Sucht Datensaetze fuer Themecontentlayoutsides anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetThemecontentlayoutsidesSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/themejsfiles": {
            "get": {
                "tags": [
                    "themejsfiles"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "docs/returns/Themejsfiles/get_themejsfiles_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/themejsfiles/1",
                                            "theme_id": 1,
                                            "name": "Main JavaScript",
                                            "filename": "main",
                                            "active_version_id": 12,
                                            "is_current_active_version": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Themejsfiles abrufen.",
                "description": "Liefert eine paginierte Liste fuer Themejsfiles.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemejsfilesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themejsfiles.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themejsfiles.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themejsfiles/{id}": {
            "get": {
                "tags": [
                    "themejsfiles"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "docs/returns/Themejsfiles/get_themejsfiles_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/themejsfiles/1",
                                        "theme_id": 1,
                                        "theme_location": "https://localhost/shop/api/v2/private/themes/1",
                                        "theme_name": "Default",
                                        "name": "Main JavaScript",
                                        "filename": "main",
                                        "parent_id": 0,
                                        "description": "Main frontend JavaScript file",
                                        "active_version_id": 12,
                                        "active_version": {
                                            "id": 12,
                                            "location": "https://localhost/shop/api/v2/private/themejsfileversions/12",
                                            "js_file_id": 1,
                                            "version": "5.0.0.5",
                                            "last_modified": "2026-01-01 12:00:00",
                                            "description": "Current version",
                                            "value_length": 512
                                        },
                                        "is_custom_file": false,
                                        "is_locked": false,
                                        "is_current_active_version": true,
                                        "version_count": 2,
                                        "latest_version_id": 12,
                                        "latest_version": "5.0.0.5",
                                        "versions": [
                                            {
                                                "id": 12,
                                                "location": "https://localhost/shop/api/v2/private/themejsfileversions/12",
                                                "js_file_id": 1,
                                                "version": "5.0.0.5",
                                                "last_modified": "2026-01-01 12:00:00",
                                                "description": "Current version",
                                                "value_length": 512,
                                                "is_active_version": true
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Themejsfiles Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Themejsfiles.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemejsfilesDetailPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themejsfiles.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themejsfiles.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "themejsfiles"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "docs/returns/Themejsfiles/get_themejsfiles_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/themejsfiles/1",
                                        "theme_id": 1,
                                        "theme_location": "https://localhost/shop/api/v2/private/themes/1",
                                        "theme_name": "Default",
                                        "name": "Main JavaScript",
                                        "filename": "main",
                                        "parent_id": 0,
                                        "description": "Main frontend JavaScript file",
                                        "active_version_id": 12,
                                        "active_version": {
                                            "id": 12,
                                            "location": "https://localhost/shop/api/v2/private/themejsfileversions/12",
                                            "js_file_id": 1,
                                            "version": "5.0.0.5",
                                            "last_modified": "2026-01-01 12:00:00",
                                            "description": "Current version",
                                            "value_length": 512
                                        },
                                        "is_custom_file": false,
                                        "is_locked": false,
                                        "is_current_active_version": true,
                                        "version_count": 2,
                                        "latest_version_id": 12,
                                        "latest_version": "5.0.0.5",
                                        "versions": [
                                            {
                                                "id": 12,
                                                "location": "https://localhost/shop/api/v2/private/themejsfileversions/12",
                                                "js_file_id": 1,
                                                "version": "5.0.0.5",
                                                "last_modified": "2026-01-01 12:00:00",
                                                "description": "Current version",
                                                "value_length": 512,
                                                "is_active_version": true
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sperrstatus einer Theme-JavaScript-Datei aktualisieren.",
                "description": "Sperrt oder entsperrt eine Theme-JavaScript-Datei manuell.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutThemejsfilesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "JavaScript-Datei-ID."
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                    "locked"
                                ],
                                "properties": {
                                    "locked": {
                                        "type": "boolean",
                                        "description": "Manueller Sperrstatus der JavaScript-Datei."
                                    }
                                }
                            },
                            "example": {
                                "locked": true
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themejsfiles.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themejsfiles.update"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themejsfiles/search": {
            "get": {
                "tags": [
                    "themejsfiles"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "docs/returns/Themejsfiles/get_themejsfiles_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/themejsfiles/1",
                                            "theme_id": 1,
                                            "name": "Main JavaScript",
                                            "filename": "main",
                                            "active_version_id": 12,
                                            "is_current_active_version": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Themejsfiles suchen.",
                "description": "Sucht Datensaetze fuer Themejsfiles anhand eines Suchbegriffs.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemejsfilesSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themejsfiles.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themejsfiles.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themejsfiles/{id}/active-version": {
            "put": {
                "tags": [
                    "themejsfiles"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "docs/returns/Themejsfiles/get_themejsfiles_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/themejsfiles/1",
                                        "theme_id": 1,
                                        "theme_location": "https://localhost/shop/api/v2/private/themes/1",
                                        "theme_name": "Default",
                                        "name": "Main JavaScript",
                                        "filename": "main",
                                        "parent_id": 0,
                                        "description": "Main frontend JavaScript file",
                                        "active_version_id": 12,
                                        "active_version": {
                                            "id": 12,
                                            "location": "https://localhost/shop/api/v2/private/themejsfileversions/12",
                                            "js_file_id": 1,
                                            "version": "5.0.0.5",
                                            "last_modified": "2026-01-01 12:00:00",
                                            "description": "Current version",
                                            "value_length": 512
                                        },
                                        "is_custom_file": false,
                                        "is_locked": false,
                                        "is_current_active_version": true,
                                        "version_count": 2,
                                        "latest_version_id": 12,
                                        "latest_version": "5.0.0.5",
                                        "versions": [
                                            {
                                                "id": 12,
                                                "location": "https://localhost/shop/api/v2/private/themejsfileversions/12",
                                                "js_file_id": 1,
                                                "version": "5.0.0.5",
                                                "last_modified": "2026-01-01 12:00:00",
                                                "description": "Current version",
                                                "value_length": 512,
                                                "is_active_version": true
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Aktive Version einer Theme-JavaScript-Datei setzen.",
                "description": "Aktiviert eine vorhandene, zur JavaScript-Datei gehoerende Version, schreibt die aktive JS-Datei neu und leert den Frontend-Cache.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutThemejsfilesActive-versionPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "JavaScript-Datei-ID."
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "additionalProperties": false,
                                "required": [
                                    "version_id"
                                ],
                                "properties": {
                                    "version_id": {
                                        "type": "integer",
                                        "minimum": 1,
                                        "description": "ID einer vorhandenen Version dieser JavaScript-Datei."
                                    }
                                }
                            },
                            "example": {
                                "version_id": 84
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themejsfiles.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themejsfiles.update"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themejsfileversions": {
            "get": {
                "tags": [
                    "themejsfileversions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "docs/returns/Themejsfileversions/get_themejsfileversions_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 12,
                                            "location": "https://localhost/shop/api/v2/private/themejsfileversions/12",
                                            "js_file_id": 1,
                                            "version": "5.0.0.5",
                                            "last_modified": "2026-01-01 12:00:00",
                                            "is_active_version": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Themejsfileversions abrufen.",
                "description": "Liefert eine paginierte Liste fuer Themejsfileversions.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemejsfileversionsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themejsfileversions.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themejsfileversions.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themejsfileversions/{id}": {
            "get": {
                "tags": [
                    "themejsfileversions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "docs/returns/Themejsfileversions/get_themejsfileversions_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 12,
                                        "location": "https://localhost/shop/api/v2/private/themejsfileversions/12",
                                        "js_file_id": 1,
                                        "js_file_location": "https://localhost/shop/api/v2/private/themejsfiles/1",
                                        "js_file_name": "Main JavaScript",
                                        "js_file_filename": "main",
                                        "theme_id": 1,
                                        "theme_location": "https://localhost/shop/api/v2/private/themes/1",
                                        "theme_name": "Default",
                                        "version": "5.0.0.5",
                                        "last_modified": "2026-01-01 12:00:00",
                                        "description": "Current version",
                                        "value": "console.log('theme');",
                                        "value_length": 21,
                                        "js_file_locked": true,
                                        "is_active_version": true
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Themejsfileversions Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Themejsfileversions.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemejsfileversionsDetailPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themejsfileversions.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themejsfileversions.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "themejsfileversions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "docs/returns/Themejsfileversions/get_themejsfileversions_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 12,
                                        "location": "https://localhost/shop/api/v2/private/themejsfileversions/12",
                                        "js_file_id": 1,
                                        "js_file_location": "https://localhost/shop/api/v2/private/themejsfiles/1",
                                        "js_file_name": "Main JavaScript",
                                        "js_file_filename": "main",
                                        "theme_id": 1,
                                        "theme_location": "https://localhost/shop/api/v2/private/themes/1",
                                        "theme_name": "Default",
                                        "version": "5.0.0.5",
                                        "last_modified": "2026-01-01 12:00:00",
                                        "description": "Current version",
                                        "value": "console.log('theme');",
                                        "value_length": 21,
                                        "js_file_locked": true,
                                        "is_active_version": true
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Bestehende Theme-JavaScript-Dateiversion aktualisieren.",
                "description": "Aktualisiert Code und/oder Beschreibung einer vorhandenen JavaScript-Version. Die zugehoerige JS-Datei wird gesperrt. Ist die Version aktiv, wird auch die JavaScript-Datei im Theme-Verzeichnis neu geschrieben. Neue Versionen werden ueber diesen Endpoint niemals angelegt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutThemejsfileversionsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "ID der JavaScript-Version."
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "value": {
                                        "type": "string",
                                        "description": "Vollstaendiger neuer JavaScript-Code der vorhandenen Version.",
                                        "example": "window.themeReady = true;"
                                    },
                                    "description": {
                                        "type": "string",
                                        "maxLength": 255,
                                        "description": "Interne Beschreibung der vorhandenen Version.",
                                        "example": "JavaScript-Anpassung ueber API"
                                    }
                                },
                                "anyOf": [
                                    {
                                        "required": [
                                            "value"
                                        ]
                                    },
                                    {
                                        "required": [
                                            "description"
                                        ]
                                    }
                                ],
                                "additionalProperties": false
                            },
                            "example": {
                                "value": "window.themeReady = true;",
                                "description": "JavaScript-Anpassung ueber API"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themejsfileversions.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themejsfileversions.update"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themejsfileversions/search": {
            "get": {
                "tags": [
                    "themejsfileversions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "docs/returns/Themejsfileversions/get_themejsfileversions_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 12,
                                            "location": "https://localhost/shop/api/v2/private/themejsfileversions/12",
                                            "js_file_id": 1,
                                            "version": "5.0.0.5",
                                            "last_modified": "2026-01-01 12:00:00",
                                            "is_active_version": true
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Themejsfileversions suchen.",
                "description": "Sucht Datensaetze fuer Themejsfileversions anhand eines Suchbegriffs.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemejsfileversionsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themejsfileversions.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themejsfileversions.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themes": {
            "get": {
                "tags": [
                    "themes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "docs/returns/Themes/get_themes_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/themes/1",
                                            "name": "Default",
                                            "package_name": "default",
                                            "theme_type_id": 2,
                                            "theme_type_name": "Bootstrap 5 (2026)",
                                            "is_standard": true,
                                            "is_import_export_enabled": false,
                                            "version": "1.0"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Layout-Themes abrufen.",
                "description": "Liefert eine paginierte Liste fuer Layout-Themes.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themes.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themes.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themes/{id}": {
            "get": {
                "tags": [
                    "themes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "docs/returns/Themes/get_themes_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/themes/1",
                                        "name": "Default",
                                        "package_name": "default",
                                        "theme_type_id": 2,
                                        "theme_type_name": "Bootstrap 5 (2026)",
                                        "is_standard": true,
                                        "is_import_export_enabled": false,
                                        "version": "1.0",
                                        "creation_date": "2026-01-01",
                                        "author": "APT",
                                        "author_email": "info@example.org",
                                        "author_url": "https://example.org",
                                        "copyright": "APT",
                                        "license": "commercial",
                                        "description": "Default shop theme",
                                        "preview_image": "preview.png",
                                        "theme_directory": "theme1",
                                        "custom_css": ".header { background-color: #ffffff; }",
                                        "area_count": 12,
                                        "js_file_count": 3,
                                        "active_multishops": [
                                            {
                                                "multishop_id": 1,
                                                "shop_name": "Default shop",
                                                "server_name": "localhost",
                                                "location": "https://localhost/shop/api/v2/private/multishops/1"
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Layout-Themes Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Layout-Themes.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemesDetailPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themes.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themes.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "themes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "docs/returns/Themes/get_themes_item.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/themes/1",
                                        "name": "Default",
                                        "package_name": "default",
                                        "theme_type_id": 2,
                                        "theme_type_name": "Bootstrap 5 (2026)",
                                        "is_standard": true,
                                        "is_import_export_enabled": false,
                                        "version": "1.0",
                                        "creation_date": "2026-01-01",
                                        "author": "APT",
                                        "author_email": "info@example.org",
                                        "author_url": "https://example.org",
                                        "copyright": "APT",
                                        "license": "commercial",
                                        "description": "Default shop theme",
                                        "preview_image": "preview.png",
                                        "theme_directory": "theme1",
                                        "custom_css": ".header { background-color: #ffffff; }",
                                        "area_count": 12,
                                        "js_file_count": 3,
                                        "active_multishops": [
                                            {
                                                "multishop_id": 1,
                                                "shop_name": "Default shop",
                                                "server_name": "localhost",
                                                "location": "https://localhost/shop/api/v2/private/multishops/1"
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Eigenes CSS eines Layout-Themes aktualisieren.",
                "description": "Ersetzt das eigene CSS oder haengt weiteren CSS-Code an. Anschliessend werden die Theme-CSS-Datei neu geschrieben und die Frontend-Caches wie bei der Bearbeitung im Backend aktualisiert.\n\n\u26a0\ufe0f **Rate Limit:** Max. 100 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutThemesDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Theme-ID."
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "custom_css"
                                ],
                                "properties": {
                                    "custom_css": {
                                        "type": "string",
                                        "description": "Eigener CSS-Code des Themes. Ein leerer String entfernt den Code im Modus replace.",
                                        "example": ".header { background-color: #ffffff; }"
                                    },
                                    "mode": {
                                        "type": "string",
                                        "enum": [
                                            "replace",
                                            "append"
                                        ],
                                        "default": "replace",
                                        "description": "replace ersetzt den kompletten eigenen CSS-Code; append haengt den Code mit einem Zeilenumbruch an."
                                    }
                                },
                                "additionalProperties": false
                            },
                            "example": {
                                "custom_css": ".header { background-color: #ffffff; }",
                                "mode": "append"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themes.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themes.update"
                ],
                "x-ratelimit": {
                    "limit": 100,
                    "period": "hour",
                    "description": "Maximal 100 Requests pro hour erlaubt."
                }
            }
        },
        "/private/themes/search": {
            "get": {
                "tags": [
                    "themes"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "docs/returns/Themes/get_themes_item.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/themes/1",
                                            "name": "Default",
                                            "package_name": "default",
                                            "theme_type_id": 2,
                                            "theme_type_name": "Bootstrap 5 (2026)",
                                            "is_standard": true,
                                            "is_import_export_enabled": false,
                                            "version": "1.0"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Layout-Themes suchen.",
                "description": "Sucht Datensaetze fuer Layout-Themes anhand eines Suchbegriffs.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetThemesSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "themes.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "themes.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/trustedshops": {
            "get": {
                "tags": [
                    "trustedshops"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/trustedshops/1"
                                                    },
                                                    "lang_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "trustedshopid": {
                                                        "type": "string",
                                                        "example": "X12345678901234567890123456789012"
                                                    },
                                                    "usetrustbadge": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "usetrustexcellence": {
                                                        "type": "integer",
                                                        "example": 0
                                                    },
                                                    "ws_user": {
                                                        "type": "string",
                                                        "example": "trusted-user"
                                                    },
                                                    "language_name": {
                                                        "type": "string",
                                                        "example": "Deutsch"
                                                    },
                                                    "multishop_name": {
                                                        "type": "string",
                                                        "example": "Hauptshop"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 50
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/trustedshops/1",
                                            "lang_id": 1,
                                            "multishop_id": 1,
                                            "trustedshopid": "X12345678901234567890123456789012",
                                            "usetrustbadge": 1,
                                            "usetrustexcellence": 0,
                                            "ws_user": "trusted-user",
                                            "language_name": "Deutsch",
                                            "multishop_name": "Hauptshop"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 50,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Trusted-Shops-Einstellungen abrufen.",
                "description": "Liefert eine paginierte Liste fuer Trusted-Shops-Einstellungen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetTrustedshopsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            },
            "post": {
                "tags": [
                    "trustedshops"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/trustedshops/1"
                                                },
                                                "lang_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "multishop_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "trustedshopid": {
                                                    "type": "string",
                                                    "example": "X12345678901234567890123456789012"
                                                },
                                                "usetrustbadge": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "usetrustexcellence": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "ws_user": {
                                                    "type": "string",
                                                    "example": "trusted-user"
                                                },
                                                "language_name": {
                                                    "type": "string",
                                                    "example": "Deutsch"
                                                },
                                                "multishop_name": {
                                                    "type": "string",
                                                    "example": "Hauptshop"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "lang_id": 1,
                                    "multishop_id": 1,
                                    "trustedshopid": "X12345678901234567890123456789012",
                                    "usetrustbadge": 1,
                                    "usetrustexcellence": 0,
                                    "ws_user": "trusted-user",
                                    "ws_pass": "secret"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Trusted-Shops-Einstellungen anlegen.",
                "description": "Schreibt die uebergebenen Felder fuer Trusted-Shops-Einstellungen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PostTrustedshopsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "lang_id",
                                    "multishop_id",
                                    "trustedshopid"
                                ],
                                "properties": {
                                    "lang_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "trustedshopid": {
                                        "type": "string",
                                        "example": "X12345678901234567890123456789012"
                                    },
                                    "usetrustbadge": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "usetrustexcellence": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "ws_user": {
                                        "type": "string",
                                        "example": "trusted-user"
                                    },
                                    "ws_pass": {
                                        "type": "string",
                                        "example": "secret"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/trustedshops/{id}": {
            "get": {
                "tags": [
                    "trustedshops"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/trustedshops/1"
                                                },
                                                "lang_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "multishop_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "trustedshopid": {
                                                    "type": "string",
                                                    "example": "X12345678901234567890123456789012"
                                                },
                                                "usetrustbadge": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "usetrustexcellence": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "ws_user": {
                                                    "type": "string",
                                                    "example": "trusted-user"
                                                },
                                                "language_name": {
                                                    "type": "string",
                                                    "example": "Deutsch"
                                                },
                                                "multishop_name": {
                                                    "type": "string",
                                                    "example": "Hauptshop"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "https://localhost/shop/api/v2/private/trustedshops/1",
                                        "lang_id": 1,
                                        "multishop_id": 1,
                                        "trustedshopid": "X12345678901234567890123456789012",
                                        "usetrustbadge": 1,
                                        "usetrustexcellence": 0,
                                        "ws_user": "trusted-user",
                                        "language_name": "Deutsch",
                                        "multishop_name": "Hauptshop"
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Trusted-Shops-Einstellungen Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Trusted-Shops-Einstellungen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetTrustedshopsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            },
            "put": {
                "tags": [
                    "trustedshops"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "https://localhost/shop/api/v2/private/trustedshops/1"
                                                },
                                                "lang_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "multishop_id": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "trustedshopid": {
                                                    "type": "string",
                                                    "example": "X12345678901234567890123456789012"
                                                },
                                                "usetrustbadge": {
                                                    "type": "integer",
                                                    "example": 1
                                                },
                                                "usetrustexcellence": {
                                                    "type": "integer",
                                                    "example": 0
                                                },
                                                "ws_user": {
                                                    "type": "string",
                                                    "example": "trusted-user"
                                                },
                                                "language_name": {
                                                    "type": "string",
                                                    "example": "Deutsch"
                                                },
                                                "multishop_name": {
                                                    "type": "string",
                                                    "example": "Hauptshop"
                                                }
                                            }
                                        }
                                    }
                                },
                                "example": {
                                    "lang_id": 1,
                                    "multishop_id": 1,
                                    "trustedshopid": "X12345678901234567890123456789012",
                                    "usetrustbadge": 1,
                                    "usetrustexcellence": 0,
                                    "ws_user": "trusted-user",
                                    "ws_pass": "secret"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Trusted-Shops-Einstellungen aktualisieren.",
                "description": "Schreibt die uebergebenen Felder fuer Trusted-Shops-Einstellungen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "PutTrustedshopsDetailPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "required": [
                                    "lang_id",
                                    "multishop_id",
                                    "trustedshopid"
                                ],
                                "properties": {
                                    "lang_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "multishop_id": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "trustedshopid": {
                                        "type": "string",
                                        "example": "X12345678901234567890123456789012"
                                    },
                                    "usetrustbadge": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "usetrustexcellence": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "ws_user": {
                                        "type": "string",
                                        "example": "trusted-user"
                                    },
                                    "ws_pass": {
                                        "type": "string",
                                        "example": "secret"
                                    }
                                }
                            }
                        }
                    }
                },
                "security": [],
                "x-oauth-scopes": []
            },
            "delete": {
                "tags": [
                    "trustedshops"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Trusted-Shops-Einstellungen loeschen.",
                "description": "Loescht den angegebenen Datensatz fuer Trusted-Shops-Einstellungen.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "DeleteTrustedshopsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/trustedshops/search": {
            "get": {
                "tags": [
                    "trustedshops"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "https://localhost/shop/api/v2/private/trustedshops/1"
                                                    },
                                                    "lang_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "multishop_id": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "trustedshopid": {
                                                        "type": "string",
                                                        "example": "X12345678901234567890123456789012"
                                                    },
                                                    "usetrustbadge": {
                                                        "type": "integer",
                                                        "example": 1
                                                    },
                                                    "usetrustexcellence": {
                                                        "type": "integer",
                                                        "example": 0
                                                    },
                                                    "ws_user": {
                                                        "type": "string",
                                                        "example": "trusted-user"
                                                    }
                                                }
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "https://localhost/shop/api/v2/private/trustedshops/1",
                                            "lang_id": 1,
                                            "multishop_id": 1,
                                            "trustedshopid": "X12345678901234567890123456789012",
                                            "usetrustbadge": 1,
                                            "usetrustexcellence": 0,
                                            "ws_user": "trusted-user"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Trusted-Shops-Einstellungen suchen.",
                "description": "Sucht Datensaetze fuer Trusted-Shops-Einstellungen anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetTrustedshopsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/units": {
            "get": {
                "tags": [
                    "units"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Antwort auf GET /private/units - Verpackungseinheiten",
                                    "items": {
                                        "type": "object",
                                        "properties": {
                                            "id": {
                                                "type": "integer"
                                            },
                                            "location": {
                                                "type": "string",
                                                "format": "uri"
                                            },
                                            "lang": {
                                                "type": "integer"
                                            }
                                        }
                                    }
                                },
                                "example": [
                                    {
                                        "id": 3,
                                        "location": "https://example.com/api/v2/private/units/3",
                                        "lang": 1
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Verpackungseinheiten abrufen.",
                "description": "Liefert Daten fuer mehrere Verpackungseinheiten.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetUnitsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zurueckgegebenen Datensaetze (max 100)"
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Startposition im Datenbestand"
                    },
                    {
                        "name": "lang",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Sprach-ID"
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "units.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "units.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "units"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Verpackungseinheit erstellen.",
                "description": "Erstellt eine Verpackungseinheit.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostUnitsPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Request-Body fuer POST /private/units",
                                "required": [
                                    "name"
                                ],
                                "properties": {
                                    "lang": {
                                        "type": "integer",
                                        "description": "Sprach-ID"
                                    },
                                    "name": {
                                        "type": "string",
                                        "description": "Bezeichnung"
                                    },
                                    "short_name": {
                                        "type": "string",
                                        "description": "Abkuerzung"
                                    },
                                    "unit": {
                                        "type": "string",
                                        "description": "Einheit fuer die Grundpreisberechnung, z.B. kg oder l"
                                    },
                                    "unit_code": {
                                        "type": "string",
                                        "description": "UN/CEFACT Einheitencode"
                                    },
                                    "base_quantity": {
                                        "type": "integer",
                                        "description": "Grundmenge fuer die Grundpreisberechnung"
                                    },
                                    "note": {
                                        "type": "string",
                                        "description": "Hinweis am Produkt"
                                    },
                                    "note2": {
                                        "type": "string",
                                        "description": "Zweiter Hinweis bzw. Bezeichnung der Bestellmerkmalgruppe"
                                    }
                                }
                            },
                            "example": {
                                "lang": 1,
                                "name": "Stueck",
                                "short_name": "Stk.",
                                "unit": "Stk.",
                                "unit_code": "C62",
                                "base_quantity": 1
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "units.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "units.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/units/{id}": {
            "get": {
                "tags": [
                    "units"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "description": "Antwort auf GET /private/units/{id} - Verpackungseinheit",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Eindeutige Verpackungseinheit-ID"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API-Link zur Verpackungseinheit"
                                        },
                                        "lang": {
                                            "type": "integer",
                                            "description": "Sprach-ID"
                                        },
                                        "name": {
                                            "type": "string",
                                            "description": "Bezeichnung"
                                        },
                                        "short_name": {
                                            "type": "string",
                                            "description": "Abkuerzung"
                                        },
                                        "unit": {
                                            "type": "string",
                                            "description": "Einheit fuer die Grundpreisberechnung, z.B. kg oder l"
                                        },
                                        "unit_code": {
                                            "type": "string",
                                            "description": "UN/CEFACT Einheitencode"
                                        },
                                        "base_quantity": {
                                            "type": "integer",
                                            "description": "Grundmenge fuer die Grundpreisberechnung"
                                        },
                                        "note": {
                                            "type": "string",
                                            "description": "Hinweis am Produkt"
                                        },
                                        "note2": {
                                            "type": "string",
                                            "description": "Zweiter Hinweis bzw. Bezeichnung der Bestellmerkmalgruppe"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 3,
                                    "location": "https://example.com/api/v2/private/units/3",
                                    "lang": 1,
                                    "name": "Stueck",
                                    "short_name": "Stk.",
                                    "unit": "Stk.",
                                    "unit_code": "C62",
                                    "base_quantity": 1,
                                    "note": "",
                                    "note2": ""
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Verpackungseinheit abrufen.",
                "description": "Liefert Daten zu einer Verpackungseinheit.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetUnitsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Verpackungseinheit-ID"
                    },
                    {
                        "name": "lang",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Sprach-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "units.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "units.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "units"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten einer Verpackungseinheit aktualisieren.",
                "description": "Aktualisiert die Daten einer Verpackungseinheit.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutUnitsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Verpackungseinheit-ID"
                    },
                    {
                        "name": "lang",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Sprach-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "description": "Request-Body fuer PUT /private/units/{id}. Alle Felder sind optional.",
                                "properties": {
                                    "lang": {
                                        "type": "integer",
                                        "description": "Sprach-ID"
                                    },
                                    "name": {
                                        "type": "string",
                                        "description": "Bezeichnung"
                                    },
                                    "short_name": {
                                        "type": "string",
                                        "description": "Abkuerzung"
                                    },
                                    "unit": {
                                        "type": "string",
                                        "description": "Einheit fuer die Grundpreisberechnung, z.B. kg oder l"
                                    },
                                    "unit_code": {
                                        "type": "string",
                                        "description": "UN/CEFACT Einheitencode"
                                    },
                                    "base_quantity": {
                                        "type": "integer",
                                        "description": "Grundmenge fuer die Grundpreisberechnung"
                                    },
                                    "note": {
                                        "type": "string",
                                        "description": "Hinweis am Produkt"
                                    },
                                    "note2": {
                                        "type": "string",
                                        "description": "Zweiter Hinweis bzw. Bezeichnung der Bestellmerkmalgruppe"
                                    }
                                }
                            },
                            "example": {
                                "name": "Stueck",
                                "short_name": "Stk.",
                                "unit": "Stk.",
                                "unit_code": "C62",
                                "base_quantity": 1
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "units.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "units.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "units"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Eine Verpackungseinheit loeschen.",
                "description": "Loescht eine Verpackungseinheit in allen Sprachen. Zugeordnete Produkte werden auf Verpackungseinheit-ID 0 gesetzt.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteUnitsDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Verpackungseinheit-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "units.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "units.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/units/search": {
            "get": {
                "tags": [
                    "units"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "array",
                                    "description": "Antwort auf GET /private/units/search - Suchergebnisse",
                                    "items": {
                                        "$ref": "get_unit.json"
                                    }
                                },
                                "example": [
                                    {
                                        "id": 3,
                                        "location": "https://example.com/api/v2/private/units/3",
                                        "lang": 1,
                                        "name": "Stueck",
                                        "short_name": "Stk.",
                                        "unit": "Stk.",
                                        "unit_code": "C62",
                                        "base_quantity": 1,
                                        "note": "",
                                        "note2": ""
                                    }
                                ]
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Sucht in Verpackungseinheiten nach einem String.",
                "description": "Sucht in Verpackungseinheiten nach Bezeichnung.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetUnitsSearchPrivate",
                "parameters": [
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchstring"
                    },
                    {
                        "name": "lang",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Sprach-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "units.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "units.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/userfavorites": {
            "get": {
                "tags": [
                    "userfavorites"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "/private/userfavorites/1",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "user_id": {
                                                        "type": "integer",
                                                        "example": 5,
                                                        "description": "ID des Backend-Benutzers."
                                                    },
                                                    "menulink_id": {
                                                        "type": "integer",
                                                        "example": 0,
                                                        "description": "ID des Menueeintrags."
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Dashboard",
                                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                    },
                                                    "link": {
                                                        "type": "string",
                                                        "example": "modules.php?warp=default",
                                                        "description": "Link oder URL."
                                                    },
                                                    "sort_order": {
                                                        "type": "integer",
                                                        "example": 10,
                                                        "description": "Sortierreihenfolge."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1,
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100,
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0,
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Userfavorites."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/private/userfavorites/1",
                                            "user_id": 5,
                                            "menulink_id": 0,
                                            "name": "Dashboard",
                                            "link": "modules.php?warp=default",
                                            "sort_order": 10
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 100,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Backend-Benutzerfavoriten abrufen",
                "description": "Gibt konfigurierte Menue-Favoriten von Backend-Benutzern zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetUserfavoritesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Alle Felder ausgeben."
                    },
                    {
                        "name": "user_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Backend-Benutzer filtern."
                    },
                    {
                        "name": "menulink_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Menueeintrag filtern, 0 steht fuer einen freien Favoritenlink."
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Favoritenname filtern."
                    },
                    {
                        "name": "link",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Link oder URL filtern."
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/userfavorites/{id}": {
            "get": {
                "tags": [
                    "userfavorites"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1,
                                                    "description": "Interne ID des Datensatzes."
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "/private/userfavorites/1",
                                                    "description": "API-URL zur Detailansicht des Datensatzes."
                                                },
                                                "user_id": {
                                                    "type": "integer",
                                                    "example": 5,
                                                    "description": "ID des Backend-Benutzers."
                                                },
                                                "menulink_id": {
                                                    "type": "integer",
                                                    "example": 0,
                                                    "description": "ID des Menueeintrags."
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Dashboard",
                                                    "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                },
                                                "link": {
                                                    "type": "string",
                                                    "example": "modules.php?warp=default",
                                                    "description": "Link oder URL."
                                                },
                                                "sort_order": {
                                                    "type": "integer",
                                                    "example": 10,
                                                    "description": "Sortierreihenfolge."
                                                }
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        }
                                    },
                                    "description": "Schema fuer Userfavorites."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "/private/userfavorites/1",
                                        "user_id": 5,
                                        "menulink_id": 0,
                                        "name": "Dashboard",
                                        "link": "modules.php?warp=default",
                                        "sort_order": 10
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Backend-Benutzerfavorit abrufen",
                "description": "Gibt einen einzelnen Backend-Benutzerfavoriten zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetUserfavoritesDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/userfavorites/search": {
            "get": {
                "tags": [
                    "userfavorites"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "/private/userfavorites/1",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "user_id": {
                                                        "type": "integer",
                                                        "example": 5,
                                                        "description": "ID des Backend-Benutzers."
                                                    },
                                                    "menulink_id": {
                                                        "type": "integer",
                                                        "example": 0,
                                                        "description": "ID des Menueeintrags."
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Dashboard",
                                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                    },
                                                    "link": {
                                                        "type": "string",
                                                        "example": "modules.php?warp=default",
                                                        "description": "Link oder URL."
                                                    },
                                                    "sort_order": {
                                                        "type": "integer",
                                                        "example": 10,
                                                        "description": "Sortierreihenfolge."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1,
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100,
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0,
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Userfavorites."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/private/userfavorites/1",
                                            "user_id": 5,
                                            "menulink_id": 0,
                                            "name": "Dashboard",
                                            "link": "modules.php?warp=default",
                                            "sort_order": 10
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 100,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Backend-Benutzerfavoriten suchen",
                "description": "Sucht Backend-Benutzerfavoriten nach Name oder Link.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetUserfavoritesSearchPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/vouchercategories": {
            "get": {
                "tags": [
                    "vouchercategories"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "/shop/api/v2/private/vouchercategories/1",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "gutschein_id": {
                                                        "type": "integer",
                                                        "example": 10,
                                                        "description": "ID des Gutscheins."
                                                    },
                                                    "category_id": {
                                                        "type": "integer",
                                                        "example": 2,
                                                        "description": "ID der Kategorie."
                                                    },
                                                    "category_location": {
                                                        "type": "string",
                                                        "example": "/shop/api/v2/private/categories/2",
                                                        "description": "API-URL zur Kategorie."
                                                    },
                                                    "gutschein_name": {
                                                        "type": "string",
                                                        "example": "Sommeraktion",
                                                        "description": "Name des Gutscheins."
                                                    },
                                                    "gutschein_number": {
                                                        "type": "string",
                                                        "example": "SUMMER10",
                                                        "description": "Gutscheinnummer."
                                                    },
                                                    "gutschein_type": {
                                                        "type": "integer",
                                                        "example": 0,
                                                        "description": "Feld `gutschein_type` des Datensatzes."
                                                    },
                                                    "category_name": {
                                                        "type": "string",
                                                        "example": "Schuhe",
                                                        "description": "Name der Kategorie."
                                                    },
                                                    "category_active": {
                                                        "type": "boolean",
                                                        "example": true,
                                                        "description": "Feld `category_active` des Datensatzes."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1,
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100,
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0,
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Vouchercategories."
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Gutschein-Kategoriezuordnungen abrufen",
                "description": "Gibt Kategorie-Filterzuordnungen zu Gutscheinen zurueck. Schreibzugriffe sind nicht freigegeben, weil die Backend-UI diese Zuordnungen zusammen mit dem vollstaendigen Gutscheinprozess speichert.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetVouchercategoriesPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gutschein- und Kategoriedetails ausgeben."
                    },
                    {
                        "name": "id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Zuordnungs-ID filtern."
                    },
                    {
                        "name": "gutschein_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Gutschein filtern."
                    },
                    {
                        "name": "category_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Kategorie filtern."
                    },
                    {
                        "name": "gutschein_name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Gutscheinnamen filtern."
                    },
                    {
                        "name": "gutschein_number",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Gutscheinnummer filtern."
                    },
                    {
                        "name": "category_name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Kategorienamen filtern."
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "vouchercategories.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "vouchercategories.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/vouchercategories/{id}": {
            "get": {
                "tags": [
                    "vouchercategories"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1,
                                                    "description": "Interne ID des Datensatzes."
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "/shop/api/v2/private/vouchercategories/1",
                                                    "description": "API-URL zur Detailansicht des Datensatzes."
                                                },
                                                "gutschein_id": {
                                                    "type": "integer",
                                                    "example": 10,
                                                    "description": "ID des Gutscheins."
                                                },
                                                "category_id": {
                                                    "type": "integer",
                                                    "example": 2,
                                                    "description": "ID der Kategorie."
                                                },
                                                "category_location": {
                                                    "type": "string",
                                                    "example": "/shop/api/v2/private/categories/2",
                                                    "description": "API-URL zur Kategorie."
                                                },
                                                "gutschein_name": {
                                                    "type": "string",
                                                    "example": "Sommeraktion",
                                                    "description": "Name des Gutscheins."
                                                },
                                                "gutschein_number": {
                                                    "type": "string",
                                                    "example": "SUMMER10",
                                                    "description": "Gutscheinnummer."
                                                },
                                                "gutschein_type": {
                                                    "type": "integer",
                                                    "example": 0,
                                                    "description": "Feld `gutschein_type` des Datensatzes."
                                                },
                                                "category_name": {
                                                    "type": "string",
                                                    "example": "Schuhe",
                                                    "description": "Name der Kategorie."
                                                },
                                                "category_active": {
                                                    "type": "boolean",
                                                    "example": true,
                                                    "description": "Feld `category_active` des Datensatzes."
                                                }
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        }
                                    },
                                    "description": "Schema fuer Vouchercategories."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/shop/api/v2/private/vouchercategories/1",
                                            "gutschein_id": 10,
                                            "category_id": 2,
                                            "category_location": "/shop/api/v2/private/categories/2"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 100,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Gutschein-Kategoriezuordnung abrufen",
                "description": "Gibt eine einzelne Gutschein-Kategoriezuordnung zurueck.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetVouchercategoriesDetailPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "vouchercategories.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "vouchercategories.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/vouchercategories/search": {
            "get": {
                "tags": [
                    "vouchercategories"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "/shop/api/v2/private/vouchercategories/1",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "gutschein_id": {
                                                        "type": "integer",
                                                        "example": 10,
                                                        "description": "ID des Gutscheins."
                                                    },
                                                    "category_id": {
                                                        "type": "integer",
                                                        "example": 2,
                                                        "description": "ID der Kategorie."
                                                    },
                                                    "category_location": {
                                                        "type": "string",
                                                        "example": "/shop/api/v2/private/categories/2",
                                                        "description": "API-URL zur Kategorie."
                                                    },
                                                    "gutschein_name": {
                                                        "type": "string",
                                                        "example": "Sommeraktion",
                                                        "description": "Name des Gutscheins."
                                                    },
                                                    "gutschein_number": {
                                                        "type": "string",
                                                        "example": "SUMMER10",
                                                        "description": "Gutscheinnummer."
                                                    },
                                                    "gutschein_type": {
                                                        "type": "integer",
                                                        "example": 0,
                                                        "description": "Feld `gutschein_type` des Datensatzes."
                                                    },
                                                    "category_name": {
                                                        "type": "string",
                                                        "example": "Schuhe",
                                                        "description": "Name der Kategorie."
                                                    },
                                                    "category_active": {
                                                        "type": "boolean",
                                                        "example": true,
                                                        "description": "Feld `category_active` des Datensatzes."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1,
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100,
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0,
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Vouchercategories."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/shop/api/v2/private/vouchercategories/1",
                                            "gutschein_id": 10,
                                            "category_id": 2,
                                            "category_location": "/shop/api/v2/private/categories/2"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Gutschein-Kategoriezuordnungen suchen",
                "description": "Sucht Gutschein-Kategoriezuordnungen nach Gutschein oder Kategorie.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetVouchercategoriesSearchPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "vouchercategories.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "vouchercategories.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/vouchercustomergroups": {
            "get": {
                "tags": [
                    "vouchercustomergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "/shop/api/v2/private/vouchercustomergroups/1",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "gutschein_id": {
                                                        "type": "integer",
                                                        "example": 10,
                                                        "description": "ID des Gutscheins."
                                                    },
                                                    "customer_group_id": {
                                                        "type": "integer",
                                                        "example": 2,
                                                        "description": "ID der Kundengruppe."
                                                    },
                                                    "customer_group_location": {
                                                        "type": "string",
                                                        "example": "/shop/api/v2/private/customergroups/2",
                                                        "description": "Feld `customer_group_location` des Datensatzes."
                                                    },
                                                    "gutschein_name": {
                                                        "type": "string",
                                                        "example": "Sommeraktion",
                                                        "description": "Name des Gutscheins."
                                                    },
                                                    "gutschein_number": {
                                                        "type": "string",
                                                        "example": "SUMMER10",
                                                        "description": "Gutscheinnummer."
                                                    },
                                                    "gutschein_type": {
                                                        "type": "integer",
                                                        "example": 0,
                                                        "description": "Feld `gutschein_type` des Datensatzes."
                                                    },
                                                    "customer_group_name": {
                                                        "type": "string",
                                                        "example": "Haendler",
                                                        "description": "Name der Kundengruppe."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1,
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100,
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0,
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Vouchercustomergroups."
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Gutschein-Kundengruppenzuordnungen abrufen",
                "description": "Gibt Kundengruppen-Filterzuordnungen zu Gutscheinen zurueck. Schreibzugriffe sind nicht freigegeben, weil die Backend-UI diese Zuordnungen zusammen mit dem vollstaendigen Gutscheinprozess speichert.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetVouchercustomergroupsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gutschein- und Kundengruppendetails ausgeben."
                    },
                    {
                        "name": "id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Zuordnungs-ID filtern."
                    },
                    {
                        "name": "gutschein_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Gutschein filtern."
                    },
                    {
                        "name": "customer_group_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Kundengruppe filtern."
                    },
                    {
                        "name": "gutschein_name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Gutscheinnamen filtern."
                    },
                    {
                        "name": "gutschein_number",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Gutscheinnummer filtern."
                    },
                    {
                        "name": "customer_group_name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Kundengruppenname filtern."
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "vouchercustomergroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "vouchercustomergroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/vouchercustomergroups/{id}": {
            "get": {
                "tags": [
                    "vouchercustomergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 1,
                                                    "description": "Interne ID des Datensatzes."
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "/shop/api/v2/private/vouchercustomergroups/1",
                                                    "description": "API-URL zur Detailansicht des Datensatzes."
                                                },
                                                "gutschein_id": {
                                                    "type": "integer",
                                                    "example": 10,
                                                    "description": "ID des Gutscheins."
                                                },
                                                "customer_group_id": {
                                                    "type": "integer",
                                                    "example": 2,
                                                    "description": "ID der Kundengruppe."
                                                },
                                                "customer_group_location": {
                                                    "type": "string",
                                                    "example": "/shop/api/v2/private/customergroups/2",
                                                    "description": "Feld `customer_group_location` des Datensatzes."
                                                },
                                                "gutschein_name": {
                                                    "type": "string",
                                                    "example": "Sommeraktion",
                                                    "description": "Name des Gutscheins."
                                                },
                                                "gutschein_number": {
                                                    "type": "string",
                                                    "example": "SUMMER10",
                                                    "description": "Gutscheinnummer."
                                                },
                                                "gutschein_type": {
                                                    "type": "integer",
                                                    "example": 0,
                                                    "description": "Feld `gutschein_type` des Datensatzes."
                                                },
                                                "customer_group_name": {
                                                    "type": "string",
                                                    "example": "Haendler",
                                                    "description": "Name der Kundengruppe."
                                                }
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        }
                                    },
                                    "description": "Schema fuer Vouchercustomergroups."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/shop/api/v2/private/vouchercustomergroups/1",
                                            "gutschein_id": 10,
                                            "customer_group_id": 2,
                                            "customer_group_location": "/shop/api/v2/private/customergroups/2"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 100,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Gutschein-Kundengruppenzuordnung abrufen",
                "description": "Gibt eine einzelne Gutschein-Kundengruppenzuordnung zurueck.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetVouchercustomergroupsDetailPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "vouchercustomergroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "vouchercustomergroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/vouchercustomergroups/search": {
            "get": {
                "tags": [
                    "vouchercustomergroups"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "/shop/api/v2/private/vouchercustomergroups/1",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "gutschein_id": {
                                                        "type": "integer",
                                                        "example": 10,
                                                        "description": "ID des Gutscheins."
                                                    },
                                                    "customer_group_id": {
                                                        "type": "integer",
                                                        "example": 2,
                                                        "description": "ID der Kundengruppe."
                                                    },
                                                    "customer_group_location": {
                                                        "type": "string",
                                                        "example": "/shop/api/v2/private/customergroups/2",
                                                        "description": "Feld `customer_group_location` des Datensatzes."
                                                    },
                                                    "gutschein_name": {
                                                        "type": "string",
                                                        "example": "Sommeraktion",
                                                        "description": "Name des Gutscheins."
                                                    },
                                                    "gutschein_number": {
                                                        "type": "string",
                                                        "example": "SUMMER10",
                                                        "description": "Gutscheinnummer."
                                                    },
                                                    "gutschein_type": {
                                                        "type": "integer",
                                                        "example": 0,
                                                        "description": "Feld `gutschein_type` des Datensatzes."
                                                    },
                                                    "customer_group_name": {
                                                        "type": "string",
                                                        "example": "Haendler",
                                                        "description": "Name der Kundengruppe."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1,
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100,
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0,
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Vouchercustomergroups."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/shop/api/v2/private/vouchercustomergroups/1",
                                            "gutschein_id": 10,
                                            "customer_group_id": 2,
                                            "customer_group_location": "/shop/api/v2/private/customergroups/2"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Gutschein-Kundengruppenzuordnungen suchen",
                "description": "Sucht Gutschein-Kundengruppenzuordnungen nach Gutschein oder Kundengruppe.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetVouchercustomergroupsSearchPrivate",
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "vouchercustomergroups.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "vouchercustomergroups.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/vouchermanufactors": {
            "get": {
                "tags": [
                    "vouchermanufactors"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_vouchermanufactors_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/shop/api/v2/private/vouchermanufactors/1",
                                            "gutschein_id": 10,
                                            "manufacturer_id": 5,
                                            "manufacturer_location": "/shop/api/v2/private/manufactors/5"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 100,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Vouchermanufactors abrufen.",
                "description": "Liefert eine paginierte Liste fuer Vouchermanufactors.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetVouchermanufactorsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/vouchermanufactors/{id}": {
            "get": {
                "tags": [
                    "vouchermanufactors"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_vouchermanufactors_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/shop/api/v2/private/vouchermanufactors/1",
                                            "gutschein_id": 10,
                                            "manufacturer_id": 5,
                                            "manufacturer_location": "/shop/api/v2/private/manufactors/5"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 100,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Vouchermanufactors Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Vouchermanufactors.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetVouchermanufactorsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/vouchermanufactors/search": {
            "get": {
                "tags": [
                    "vouchermanufactors"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_vouchermanufactors_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/shop/api/v2/private/vouchermanufactors/1",
                                            "gutschein_id": 10,
                                            "manufacturer_id": 5,
                                            "manufacturer_location": "/shop/api/v2/private/manufactors/5"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Vouchermanufactors suchen.",
                "description": "Sucht Datensaetze fuer Vouchermanufactors anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetVouchermanufactorsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/voucherredemptions": {
            "get": {
                "tags": [
                    "voucherredemptions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_voucherredemption_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/shop/api/v2/private/voucherredemptions/1",
                                            "voucher_number": "SOMMER10",
                                            "customer_id": 42,
                                            "customer_location": "/shop/api/v2/private/customers/42",
                                            "order_id": 1001,
                                            "order_location": "/shop/api/v2/private/orders/1001",
                                            "redeemed_at": 1718186400
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 100,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Voucherredemptions abrufen.",
                "description": "Liefert eine paginierte Liste fuer Voucherredemptions.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetVoucherredemptionsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/voucherredemptions/{id}": {
            "get": {
                "tags": [
                    "voucherredemptions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "get_voucherredemption_entry.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 1,
                                        "location": "/shop/api/v2/private/voucherredemptions/1",
                                        "voucher_number": "SOMMER10",
                                        "customer_id": 42,
                                        "customer_location": "/shop/api/v2/private/customers/42",
                                        "order_id": 1001,
                                        "order_location": "/shop/api/v2/private/orders/1001",
                                        "redeemed_at": 1718186400,
                                        "voucher_id": 10,
                                        "voucher_name": "Sommeraktion",
                                        "voucher_type": 1,
                                        "customer_firstname": "Max",
                                        "customer_lastname": "Mustermann",
                                        "order_number": "2026-1001",
                                        "order_total_gross": 89.95
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Voucherredemptions Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Voucherredemptions.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetVoucherredemptionsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/voucherredemptions/search": {
            "get": {
                "tags": [
                    "voucherredemptions"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_voucherredemption_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/shop/api/v2/private/voucherredemptions/1",
                                            "voucher_number": "SOMMER10",
                                            "customer_id": 42,
                                            "customer_location": "/shop/api/v2/private/customers/42",
                                            "order_id": 1001,
                                            "order_location": "/shop/api/v2/private/orders/1001",
                                            "redeemed_at": 1718186400
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Voucherredemptions suchen.",
                "description": "Sucht Datensaetze fuer Voucherredemptions anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetVoucherredemptionsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/vouchers": {
            "get": {
                "tags": [
                    "vouchers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 12,
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "/private/vouchers/12",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "number": {
                                                        "type": "string",
                                                        "example": "SUMMER10",
                                                        "description": "Nummer bzw. Code des Datensatzes."
                                                    },
                                                    "type": {
                                                        "type": "integer",
                                                        "example": 0,
                                                        "description": "Interner Typwert."
                                                    },
                                                    "type_name": {
                                                        "type": "string",
                                                        "example": "discount_voucher",
                                                        "description": "Lesbarer Name des Typs."
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Summer voucher",
                                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                    },
                                                    "internal_name": {
                                                        "type": "string",
                                                        "example": "Campaign 2026",
                                                        "description": "Interne Bezeichnung aus der Backend-Ansicht."
                                                    },
                                                    "created_date": {
                                                        "type": "string",
                                                        "example": "2026-06-12",
                                                        "description": "Erstellungsdatum des Datensatzes."
                                                    },
                                                    "amount": {
                                                        "type": "number",
                                                        "example": 10,
                                                        "description": "Betrag oder Prozentwert."
                                                    },
                                                    "value_type": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "Interner Werttyp."
                                                    },
                                                    "value_type_name": {
                                                        "type": "string",
                                                        "example": "percent",
                                                        "description": "Lesbarer Name des Werttyps."
                                                    },
                                                    "valid_from": {
                                                        "type": "string",
                                                        "example": "2026-06-01",
                                                        "description": "Gueltig ab Datum."
                                                    },
                                                    "valid_to": {
                                                        "type": "string",
                                                        "example": "2026-06-30",
                                                        "description": "Gueltig bis Datum."
                                                    },
                                                    "free_redemptions": {
                                                        "type": "integer",
                                                        "example": 100,
                                                        "description": "Anzahl der freien Einloesungen."
                                                    },
                                                    "single_redemption": {
                                                        "type": "boolean",
                                                        "example": true,
                                                        "description": "Kennzeichen fuer einmalige Einloesung."
                                                    },
                                                    "new_customer_only": {
                                                        "type": "boolean",
                                                        "example": false,
                                                        "description": "Kennzeichen fuer Einloesung nur durch Neukunden."
                                                    },
                                                    "frontend_redemption": {
                                                        "type": "boolean",
                                                        "example": true,
                                                        "description": "Kennzeichen fuer Einloesung im Frontend."
                                                    },
                                                    "offer_only": {
                                                        "type": "boolean",
                                                        "example": false,
                                                        "description": "Kennzeichen fuer Nutzung nur in Angeboten."
                                                    },
                                                    "minimum_order_value": {
                                                        "type": "number",
                                                        "example": 50,
                                                        "description": "Mindestbestellwert."
                                                    },
                                                    "maximum_order_value": {
                                                        "type": "number",
                                                        "example": 0,
                                                        "description": "Maximaler Bestellwert."
                                                    },
                                                    "minimum_order_count": {
                                                        "type": "integer",
                                                        "example": 0,
                                                        "description": "Mindestanzahl der Bestellungen."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1,
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100,
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0,
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Vouchers."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 12,
                                            "location": "/private/vouchers/12",
                                            "number": "SUMMER10",
                                            "type": 0,
                                            "type_name": "discount_voucher",
                                            "name": "Summer voucher",
                                            "internal_name": "Campaign 2026",
                                            "created_date": "2026-06-12",
                                            "amount": 10,
                                            "value_type": 1,
                                            "value_type_name": "percent",
                                            "valid_from": "2026-06-01",
                                            "valid_to": "2026-06-30",
                                            "free_redemptions": 100,
                                            "single_redemption": true,
                                            "new_customer_only": false,
                                            "frontend_redemption": true,
                                            "offer_only": false,
                                            "minimum_order_value": 50,
                                            "maximum_order_value": 0,
                                            "minimum_order_count": 0
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 100,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Gutscheine abrufen",
                "description": "Gibt Gutschein-Stammdaten zurueck. Schreibzugriffe sind nicht freigegeben, weil die Backend-UI Gutscheine zusammen mit Filterzuordnungen und Prozesslogik speichert.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetVouchersPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Zuordnungs- und Einloesezaehler ausgeben."
                    },
                    {
                        "name": "id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Gutschein filtern."
                    },
                    {
                        "name": "number",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach Gutscheinnummer filtern."
                    },
                    {
                        "name": "name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach oeffentlichem Gutscheinnamen filtern."
                    },
                    {
                        "name": "internal_name",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Nach internem Gutscheinnamen filtern."
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Gutscheintyp filtern."
                    },
                    {
                        "name": "value_type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Werttyp filtern."
                    },
                    {
                        "name": "frontend_redemption",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Frontend-Einloesung filtern."
                    },
                    {
                        "name": "valid_from",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter vouchers valid from this date."
                    },
                    {
                        "name": "valid_to",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Filter vouchers valid until this date."
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/vouchers/{id}": {
            "get": {
                "tags": [
                    "vouchers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "object",
                                            "properties": {
                                                "id": {
                                                    "type": "integer",
                                                    "example": 12,
                                                    "description": "Interne ID des Datensatzes."
                                                },
                                                "location": {
                                                    "type": "string",
                                                    "example": "/private/vouchers/12",
                                                    "description": "API-URL zur Detailansicht des Datensatzes."
                                                },
                                                "number": {
                                                    "type": "string",
                                                    "example": "SUMMER10",
                                                    "description": "Nummer bzw. Code des Datensatzes."
                                                },
                                                "type": {
                                                    "type": "integer",
                                                    "example": 0,
                                                    "description": "Interner Typwert."
                                                },
                                                "type_name": {
                                                    "type": "string",
                                                    "example": "discount_voucher",
                                                    "description": "Lesbarer Name des Typs."
                                                },
                                                "name": {
                                                    "type": "string",
                                                    "example": "Summer voucher",
                                                    "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                },
                                                "internal_name": {
                                                    "type": "string",
                                                    "example": "Campaign 2026",
                                                    "description": "Interne Bezeichnung aus der Backend-Ansicht."
                                                },
                                                "amount": {
                                                    "type": "number",
                                                    "example": 10,
                                                    "description": "Betrag oder Prozentwert."
                                                },
                                                "value_type_name": {
                                                    "type": "string",
                                                    "example": "percent",
                                                    "description": "Lesbarer Name des Werttyps."
                                                },
                                                "category_count": {
                                                    "type": "integer",
                                                    "example": 2,
                                                    "description": "Anzahl der zugeordneten Kategorien."
                                                },
                                                "customer_group_count": {
                                                    "type": "integer",
                                                    "example": 1,
                                                    "description": "Feld `customer_group_count` des Datensatzes."
                                                },
                                                "manufacturer_count": {
                                                    "type": "integer",
                                                    "example": 0,
                                                    "description": "Anzahl der zugeordneten Hersteller."
                                                },
                                                "variation_count": {
                                                    "type": "integer",
                                                    "example": 0,
                                                    "description": "Feld `variation_count` des Datensatzes."
                                                },
                                                "redemption_count": {
                                                    "type": "integer",
                                                    "example": 4,
                                                    "description": "Anzahl der Einloesungen."
                                                }
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        }
                                    },
                                    "description": "Schema fuer Vouchers."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": 12,
                                        "location": "/private/vouchers/12",
                                        "number": "SUMMER10",
                                        "type": 0,
                                        "type_name": "discount_voucher",
                                        "name": "Summer voucher",
                                        "internal_name": "Campaign 2026",
                                        "amount": 10,
                                        "value_type_name": "percent",
                                        "category_count": 2,
                                        "customer_group_count": 1,
                                        "manufacturer_count": 0,
                                        "variation_count": 0,
                                        "redemption_count": 4
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Gutschein abrufen",
                "description": "Gibt einen einzelnen Gutschein zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetVouchersDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/vouchers/search": {
            "get": {
                "tags": [
                    "vouchers"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok",
                                            "description": "Statuswert des Datensatzes."
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 12,
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "example": "/private/vouchers/12",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "number": {
                                                        "type": "string",
                                                        "example": "SUMMER10",
                                                        "description": "Nummer bzw. Code des Datensatzes."
                                                    },
                                                    "type": {
                                                        "type": "integer",
                                                        "example": 0,
                                                        "description": "Interner Typwert."
                                                    },
                                                    "type_name": {
                                                        "type": "string",
                                                        "example": "discount_voucher",
                                                        "description": "Lesbarer Name des Typs."
                                                    },
                                                    "name": {
                                                        "type": "string",
                                                        "example": "Summer voucher",
                                                        "description": "Name bzw. Bezeichnung aus der Backend-Ansicht."
                                                    },
                                                    "internal_name": {
                                                        "type": "string",
                                                        "example": "Campaign 2026",
                                                        "description": "Interne Bezeichnung aus der Backend-Ansicht."
                                                    },
                                                    "created_date": {
                                                        "type": "string",
                                                        "example": "2026-06-12",
                                                        "description": "Erstellungsdatum des Datensatzes."
                                                    },
                                                    "amount": {
                                                        "type": "number",
                                                        "example": 10,
                                                        "description": "Betrag oder Prozentwert."
                                                    },
                                                    "value_type": {
                                                        "type": "integer",
                                                        "example": 1,
                                                        "description": "Interner Werttyp."
                                                    },
                                                    "value_type_name": {
                                                        "type": "string",
                                                        "example": "percent",
                                                        "description": "Lesbarer Name des Werttyps."
                                                    },
                                                    "valid_from": {
                                                        "type": "string",
                                                        "example": "2026-06-01",
                                                        "description": "Gueltig ab Datum."
                                                    },
                                                    "valid_to": {
                                                        "type": "string",
                                                        "example": "2026-06-30",
                                                        "description": "Gueltig bis Datum."
                                                    },
                                                    "free_redemptions": {
                                                        "type": "integer",
                                                        "example": 100,
                                                        "description": "Anzahl der freien Einloesungen."
                                                    },
                                                    "single_redemption": {
                                                        "type": "boolean",
                                                        "example": true,
                                                        "description": "Kennzeichen fuer einmalige Einloesung."
                                                    },
                                                    "new_customer_only": {
                                                        "type": "boolean",
                                                        "example": false,
                                                        "description": "Kennzeichen fuer Einloesung nur durch Neukunden."
                                                    },
                                                    "frontend_redemption": {
                                                        "type": "boolean",
                                                        "example": true,
                                                        "description": "Kennzeichen fuer Einloesung im Frontend."
                                                    },
                                                    "offer_only": {
                                                        "type": "boolean",
                                                        "example": false,
                                                        "description": "Kennzeichen fuer Nutzung nur in Angeboten."
                                                    },
                                                    "minimum_order_value": {
                                                        "type": "number",
                                                        "example": 50,
                                                        "description": "Mindestbestellwert."
                                                    },
                                                    "maximum_order_value": {
                                                        "type": "number",
                                                        "example": 0,
                                                        "description": "Maximaler Bestellwert."
                                                    },
                                                    "minimum_order_count": {
                                                        "type": "integer",
                                                        "example": 0,
                                                        "description": "Mindestanzahl der Bestellungen."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1,
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100,
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0,
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Vouchers."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 12,
                                            "location": "/private/vouchers/12",
                                            "number": "SUMMER10",
                                            "type": 0,
                                            "type_name": "discount_voucher",
                                            "name": "Summer voucher",
                                            "internal_name": "Campaign 2026",
                                            "created_date": "2026-06-12",
                                            "amount": 10,
                                            "value_type": 1,
                                            "value_type_name": "percent",
                                            "valid_from": "2026-06-01",
                                            "valid_to": "2026-06-30",
                                            "free_redemptions": 100,
                                            "single_redemption": true,
                                            "new_customer_only": false,
                                            "frontend_redemption": true,
                                            "offer_only": false,
                                            "minimum_order_value": 50,
                                            "maximum_order_value": 0,
                                            "minimum_order_count": 0
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 100,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Gutscheine suchen",
                "description": "Sucht Gutscheine nach Nummer, oeffentlichem Namen oder internem Namen.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetVouchersSearchPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/vouchervariations": {
            "get": {
                "tags": [
                    "vouchervariations"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_vouchervariation_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 100
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "10-123",
                                            "location": "/shop/api/v2/private/vouchervariations/10-123",
                                            "gutschein_id": 10,
                                            "variation_id": 123,
                                            "product_id": 55,
                                            "product_location": "/shop/api/v2/private/products/55"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 100,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Vouchervariations abrufen.",
                "description": "Liefert eine paginierte Liste fuer Vouchervariations.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetVouchervariationsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Gibt Detaildaten aus, sofern vom Endpoint unterstuetzt."
                    },
                    {
                        "name": "filter",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "array"
                        },
                        "description": "Optionale Filter fuer die Liste."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/vouchervariations/{id}": {
            "get": {
                "tags": [
                    "vouchervariations"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "$ref": "get_vouchervariation_entry.json"
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "id": "10-123",
                                        "location": "/shop/api/v2/private/vouchervariations/10-123",
                                        "gutschein_id": 10,
                                        "variation_id": 123,
                                        "product_id": 55,
                                        "product_location": "/shop/api/v2/private/products/55",
                                        "gutschein_name": "Produktgutschein",
                                        "gutschein_number": "PROD10",
                                        "gutschein_type": 0,
                                        "product_name": "Beispielprodukt",
                                        "sku": "ART-001",
                                        "order_number": "LIEF-001",
                                        "ean": "4000000000000",
                                        "variation_enabled": true
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Vouchervariations Detail abrufen.",
                "description": "Liefert einen einzelnen Datensatz fuer Vouchervariations.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetVouchervariationsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/vouchervariations/search": {
            "get": {
                "tags": [
                    "vouchervariations"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "status": {
                                            "type": "string",
                                            "example": "ok"
                                        },
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "$ref": "get_vouchervariation_entry.json"
                                            }
                                        },
                                        "total": {
                                            "type": "integer",
                                            "example": 1
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "example": 20
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "example": 0
                                        }
                                    }
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": "10-123",
                                            "location": "/shop/api/v2/private/vouchervariations/10-123",
                                            "gutschein_id": 10,
                                            "variation_id": 123,
                                            "product_id": 55,
                                            "product_location": "/shop/api/v2/private/products/55"
                                        }
                                    ],
                                    "total": 1,
                                    "limit": 20,
                                    "offset": 0
                                }
                            }
                        }
                    }
                },
                "x-access": "public",
                "x-cors-enabled": false,
                "summary": "Vouchervariations suchen.",
                "description": "Sucht Datensaetze fuer Vouchervariations anhand eines Suchbegriffs.\n\n\ud83c\udf0d **Public Endpoint** \u2013 Dieser Endpunkt ist ohne Authentifizierung \u00fcber CORS erreichbar.",
                "operationId": "GetVouchervariationsSearchPrivate",
                "parameters": [
                    {
                        "name": "q",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchbegriff."
                    },
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der zurueckgegebenen Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/webhooks": {
            "get": {
                "tags": [
                    "webhooks"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "oneOf": [
                                        {
                                            "description": "Kurzform (Standardausgabe)",
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "example": 123
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "format": "uri",
                                                        "example": "https://localhost/shop/api/v2/private/webhooks/123"
                                                    }
                                                }
                                            }
                                        },
                                        {
                                            "description": "Detailform (wenn ?details=1)",
                                            "type": "array",
                                            "items": {
                                                "$ref": "#/paths/~1private~1webhooks~1{id}/get/responses/200/content/application~1json/schema"
                                            }
                                        }
                                    ]
                                },
                                "examples": {
                                    "Kurzform": {
                                        "summary": "Standardausgabe \u2013 Basisdaten",
                                        "value": [
                                            {
                                                "id": 101,
                                                "location": "https://shop.local/api/v2/private/webhooks/101"
                                            },
                                            {
                                                "id": 102,
                                                "location": "https://shop.local/api/v2/private/webhooks/102"
                                            }
                                        ]
                                    },
                                    "Detailform": {
                                        "summary": "Detaillierte Ausgabe",
                                        "value": [
                                            {
                                                "id": 1023,
                                                "location": "https://api.meinshop.de/api/v2/private/webhooks/1023",
                                                "type": "order",
                                                "reason": "create",
                                                "url": "https://erpsystem.mein-shop.de/hooks.php"
                                            }
                                        ]
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "mehrere Webhooks abrufen.",
                "description": "Liefert Daten f\u00fcr mehrere Webhooks.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetWebhooksPrivate",
                "parameters": [
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Wenn true, werden die gesamten Daten mit zurueckgegeben, wenn id=null"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "webhooks.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "webhooks.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "post": {
                "tags": [
                    "webhooks"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Webhook erstellen.",
                "description": "Erstellt einen Webhook.\n\n\u26a0\ufe0f **Rate Limit:** Max. 50 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PostWebhooksPrivate",
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "type": {
                                        "type": "string",
                                        "description": "Der Type des Webhooks, um welches Objekt es sich handelt.",
                                        "example": "manufactor"
                                    },
                                    "reason": {
                                        "type": "string",
                                        "description": "Aufrgund welcher Aktion der Webhook ausgel\u00f6st wird.",
                                        "example": "create"
                                    },
                                    "url": {
                                        "type": "string",
                                        "format": "uri",
                                        "description": "Url wohin der Webhook gesendet werden soll"
                                    }
                                },
                                "required": [
                                    "type",
                                    "reason",
                                    "url"
                                ]
                            },
                            "example": {
                                "type": "manufactor",
                                "reason": "create",
                                "url": "https://erpsystem.mein-shop.de/hooks.php"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "webhooks.create"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "webhooks.create"
                ],
                "x-ratelimit": {
                    "limit": 50,
                    "period": "hour",
                    "description": "Maximal 50 Requests pro hour erlaubt."
                }
            }
        },
        "/private/webhooks/{id}": {
            "get": {
                "tags": [
                    "webhooks"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Eindeutige Kunden-ID"
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "Vollst\u00e4ndige API-URL des Objektes"
                                        },
                                        "type": {
                                            "type": "string",
                                            "description": "Der Type des Webhooks, um welches Objekt es sich handelt.",
                                            "example": "order"
                                        },
                                        "reason": {
                                            "type": "string",
                                            "description": "Aufrgund welcher Aktion der Webhook ausgel\u00f6st wird.",
                                            "example": "create"
                                        },
                                        "url": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "Url wohin der Webhook gesendet werden soll"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 1023,
                                    "location": "https://api.meinshop.de/api/v2/private/webhooks/1023",
                                    "type": "order",
                                    "reason": "create",
                                    "url": "https://erpsystem.mein-shop.de/hooks.php"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Daten eines Webhook abrufen.",
                "description": "Liefert Daten zu einem Webhook.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetWebhooksDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Webhook-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "webhooks.read"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "webhooks.read"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "put": {
                "tags": [
                    "webhooks"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Id des Objects",
                                            "example": "1"
                                        },
                                        "location": {
                                            "type": "string",
                                            "format": "uri",
                                            "description": "API Url zum Objects",
                                            "example": "https://domain.de/api/endpoint/1"
                                        }
                                    }
                                },
                                "example": {
                                    "id": 123,
                                    "location": "https://domain.de/api/v2/endpoint/123"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Ein Webhook aktualisieren.",
                "description": "Aktualisiert einen Webhook.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "PutWebhooksDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Webhook-ID"
                    }
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "type": "object",
                                "properties": {
                                    "type": {
                                        "type": "string",
                                        "description": "Der Type des Webhooks, um welches Objekt es sich handelt.",
                                        "example": "order"
                                    },
                                    "reason": {
                                        "type": "string",
                                        "description": "Aufgrund welcher Aktion der Webhook ausgel\u00f6st wird.",
                                        "example": "create"
                                    },
                                    "url": {
                                        "type": "string",
                                        "format": "uri",
                                        "description": "Url wohin der Webhook gesendet werden soll"
                                    }
                                },
                                "required": [
                                    "type",
                                    "reason",
                                    "url"
                                ]
                            },
                            "example": {
                                "type": "manufactor",
                                "reason": "update",
                                "url": "https://erpsystem.mein-shop.de/hooks.php"
                            }
                        }
                    }
                },
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "webhooks.update"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "webhooks.update"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            },
            "delete": {
                "tags": [
                    "webhooks"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object"
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Einen Webhook l\u00f6schen.",
                "description": "L\u00f6scht einen Webhook.\n\n\u26a0\ufe0f **Rate Limit:** Max. 500 Requests pro hour.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "DeleteWebhooksDetailPrivate",
                "parameters": [
                    {
                        "name": "id",
                        "in": "path",
                        "required": true,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Webhook-ID"
                    }
                ],
                "security": [
                    {
                        "BearerAuth": []
                    },
                    {
                        "OAuth2": [
                            "webhooks.delete"
                        ]
                    }
                ],
                "x-oauth-scopes": [
                    "webhooks.delete"
                ],
                "x-ratelimit": {
                    "limit": 500,
                    "period": "hour",
                    "description": "Maximal 500 Requests pro hour erlaubt."
                }
            }
        },
        "/private/wishlists": {
            "get": {
                "tags": [
                    "wishlists"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "customer_id": {
                                                        "type": "integer",
                                                        "description": "ID des Kunden."
                                                    },
                                                    "product_id": {
                                                        "type": "integer",
                                                        "description": "ID des Artikels."
                                                    },
                                                    "customer_location": {
                                                        "type": "string",
                                                        "description": "API-URL zum Kunden."
                                                    },
                                                    "product_location": {
                                                        "type": "string",
                                                        "description": "API-URL zum Artikel."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Wishlists."
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Merklisteneintraege abrufen",
                "description": "Gibt Merklisteneintraege und optionale Auswertungen nach Artikeln oder Kunden zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetWishlistsPrivate",
                "parameters": [
                    {
                        "name": "limit",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Maximale Anzahl der Datensaetze."
                    },
                    {
                        "name": "offset",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Anzahl der zu ueberspringenden Datensaetze."
                    },
                    {
                        "name": "details",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "boolean"
                        },
                        "description": "Zugehoerige API-URLs ausgeben."
                    },
                    {
                        "name": "customer_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Kunde filtern."
                    },
                    {
                        "name": "product_id",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "integer"
                        },
                        "description": "Nach Artikel filtern."
                    },
                    {
                        "name": "value",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchwert fuer die Search-Action."
                    },
                    {
                        "name": "type",
                        "in": "query",
                        "required": false,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Suchen: type: customer or product."
                    }
                ],
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/wishlists/{id}": {
            "get": {
                "tags": [
                    "wishlists"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "id": {
                                            "type": "integer",
                                            "description": "Interne ID des Datensatzes."
                                        },
                                        "location": {
                                            "type": "string",
                                            "description": "API-URL zur Detailansicht des Datensatzes."
                                        },
                                        "customer_id": {
                                            "type": "integer",
                                            "description": "ID des Kunden."
                                        },
                                        "product_id": {
                                            "type": "integer",
                                            "description": "ID des Artikels."
                                        },
                                        "customer_location": {
                                            "type": "string",
                                            "description": "API-URL zum Kunden."
                                        },
                                        "product_location": {
                                            "type": "string",
                                            "description": "API-URL zum Artikel."
                                        }
                                    },
                                    "description": "Schema fuer Wishlists."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/private/wishlists/1",
                                            "customer_id": 10,
                                            "product_id": 100
                                        }
                                    ],
                                    "meta": {
                                        "total": 1,
                                        "limit": 100,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Merklisteneintrag abrufen",
                "description": "Gibt einen einzelnen Merklisteneintrag zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetWishlistsDetailPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/wishlists/search": {
            "get": {
                "tags": [
                    "wishlists"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "id": {
                                                        "type": "integer",
                                                        "description": "Interne ID des Datensatzes."
                                                    },
                                                    "location": {
                                                        "type": "string",
                                                        "description": "API-URL zur Detailansicht des Datensatzes."
                                                    },
                                                    "customer_id": {
                                                        "type": "integer",
                                                        "description": "ID des Kunden."
                                                    },
                                                    "product_id": {
                                                        "type": "integer",
                                                        "description": "ID des Artikels."
                                                    },
                                                    "customer_location": {
                                                        "type": "string",
                                                        "description": "API-URL zum Kunden."
                                                    },
                                                    "product_location": {
                                                        "type": "string",
                                                        "description": "API-URL zum Artikel."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Wishlists."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": [
                                        {
                                            "id": 1,
                                            "location": "/private/wishlists/1",
                                            "customer_id": 10,
                                            "product_id": 100
                                        }
                                    ],
                                    "meta": {
                                        "total": 1,
                                        "limit": 100,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Merklisteneintraege suchen",
                "description": "Sucht Merklisteneintraege nach Kunde oder Artikel.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetWishlistsSearchPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/wishlists/customers": {
            "get": {
                "tags": [
                    "wishlists"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "customer_id": {
                                                        "type": "integer",
                                                        "description": "ID des Kunden."
                                                    },
                                                    "customer_name": {
                                                        "type": "string",
                                                        "description": "Name des Kunden."
                                                    },
                                                    "count_entries": {
                                                        "type": "integer",
                                                        "description": "Anzahl der Eintraege."
                                                    },
                                                    "customer_location": {
                                                        "type": "string",
                                                        "description": "API-URL zum Kunden."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Wishlists."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "data": [
                                            {
                                                "customer_id": 10,
                                                "customer_name": "Max Mustermann",
                                                "count_entries": 2,
                                                "customer_location": "/private/customers/10"
                                            }
                                        ],
                                        "total": 1,
                                        "limit": 100,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Merklisten nach Kunden abrufen",
                "description": "Gibt eine Auswertung der Merklisteneintraege nach Kunden zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetWishlistsCustomersPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        },
        "/private/wishlists/products": {
            "get": {
                "tags": [
                    "wishlists"
                ],
                "responses": {
                    "400": {
                        "description": "Ung\u00fcltige Anfrage"
                    },
                    "401": {
                        "description": "Nicht autorisiert"
                    },
                    "403": {
                        "description": "Zugriff verweigert"
                    },
                    "404": {
                        "description": "Nicht gefunden"
                    },
                    "409": {
                        "description": "Konflikt, beispielsweise wiederverwendeter Idempotency-Key"
                    },
                    "422": {
                        "description": "Fachlich ung\u00fcltige Anfrage"
                    },
                    "429": {
                        "description": "Rate Limit \u00fcberschritten"
                    },
                    "500": {
                        "description": "Interner Serverfehler"
                    },
                    "503": {
                        "description": "Dienst vor\u00fcbergehend nicht verf\u00fcgbar"
                    },
                    "200": {
                        "description": "Erfolgreiche Antwort",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "type": "object",
                                    "properties": {
                                        "data": {
                                            "type": "array",
                                            "items": {
                                                "type": "object",
                                                "properties": {
                                                    "product_id": {
                                                        "type": "integer",
                                                        "description": "ID des Artikels."
                                                    },
                                                    "product_name": {
                                                        "type": "string",
                                                        "description": "Name des Artikels."
                                                    },
                                                    "count_entries": {
                                                        "type": "integer",
                                                        "description": "Anzahl der Eintraege."
                                                    },
                                                    "product_location": {
                                                        "type": "string",
                                                        "description": "API-URL zum Artikel."
                                                    }
                                                },
                                                "description": "Nutzdaten der Antwort."
                                            },
                                            "description": "Nutzdaten der Antwort."
                                        },
                                        "total": {
                                            "type": "integer",
                                            "description": "Gesamtanzahl der passenden Datensaetze."
                                        },
                                        "limit": {
                                            "type": "integer",
                                            "description": "Verwendetes Limit."
                                        },
                                        "offset": {
                                            "type": "integer",
                                            "description": "Verwendeter Offset."
                                        }
                                    },
                                    "description": "Schema fuer Wishlists."
                                },
                                "example": {
                                    "status": "ok",
                                    "data": {
                                        "data": [
                                            {
                                                "product_id": 100,
                                                "product_name": "Example product",
                                                "count_entries": 3,
                                                "product_location": "/private/products/100"
                                            }
                                        ],
                                        "total": 1,
                                        "limit": 100,
                                        "offset": 0
                                    }
                                }
                            }
                        }
                    }
                },
                "x-access": "private",
                "x-cors-enabled": false,
                "summary": "Merklisten nach Artikeln abrufen",
                "description": "Gibt eine Auswertung der Merklisteneintraege nach Artikeln zurueck.\n\n\ud83d\udd12 **Private Endpoint** \u2013 Erfordert g\u00fcltigen Bearer Token (OAuth2). Kein CORS-Zugriff.",
                "operationId": "GetWishlistsProductsPrivate",
                "security": [],
                "x-oauth-scopes": []
            }
        }
    },
    "tags": [
        {
            "name": "affiliates",
            "description": "API-v2-Controller fuer Affiliate-Trackingcodes."
        },
        {
            "name": "availabilities",
            "description": "Verwaltung von Produktverfuegbarkeiten"
        },
        {
            "name": "baskets",
            "description": "Verwaltung von Baskets",
            "externalDocs": {
                "description": "Weiterf\u00fchrende Informationen zu baskets",
                "url": "https://www.apt-shop.de/handbuch/einstellungen/system/rest-api#link1"
            }
        },
        {
            "name": "bills",
            "description": "Verwaltung von Rechnungen"
        },
        {
            "name": "cashmarketings",
            "description": "API-v2-Controller fuer Cash-Marketing-Kampagnen."
        },
        {
            "name": "cashstores",
            "description": "API-v2-Controller fuer Cashstores."
        },
        {
            "name": "categories",
            "description": "Verwaltung von Produktgruppen"
        },
        {
            "name": "categoryattributeassignments",
            "description": "API-v2-Controller fuer Categoryattributeassignments."
        },
        {
            "name": "categoryvariationgroupassignments",
            "description": "API-v2-Controller fuer Kategorie-Variantengruppen-Zuordnungen."
        },
        {
            "name": "clickcollecttermins",
            "description": "API-v2-Controller fuer Click-and-Collect-Termine."
        },
        {
            "name": "contactforms",
            "description": "Verwaltung von Kontaktformular-Betreffkonfigurationen"
        },
        {
            "name": "content",
            "description": "Verwaltung von Unterseiten"
        },
        {
            "name": "contentlines",
            "description": "API-v2-Controller fuer Contentlines."
        },
        {
            "name": "contentmodules",
            "description": "Verwaltung von Content-Modulen"
        },
        {
            "name": "contentrows",
            "description": "Verwaltung von Content-Setups"
        },
        {
            "name": "counterarchives",
            "description": "API-v2-Controller fuer Zaehlerarchiv-Eintraege."
        },
        {
            "name": "countries",
            "description": "Verwaltung von Laendern"
        },
        {
            "name": "countrystates",
            "description": "API-v2-Controller fuer Countrystates."
        },
        {
            "name": "currencies",
            "description": "API-v2-Controller fuer Currencies."
        },
        {
            "name": "custgroupdiscounts",
            "description": "API-v2-Controller fuer Kundengruppen-Rabattstaffeln."
        },
        {
            "name": "customergroups",
            "description": "Verwaltung von Kundengruppen"
        },
        {
            "name": "customers",
            "description": "Verwaltung von Kunden"
        },
        {
            "name": "deliverynotes",
            "description": "API-v2-Controller fuer Deliverynotes."
        },
        {
            "name": "depots",
            "description": "Verwaltung von Lagern"
        },
        {
            "name": "discountgroupcustomergroups",
            "description": "API-v2-Controller fuer Discountgroupcustomergroups."
        },
        {
            "name": "discountgroups",
            "description": "Verwaltung von Rabattgruppen"
        },
        {
            "name": "dropshippers",
            "description": "API-v2-Controller fuer Dropshippers."
        },
        {
            "name": "emailblacklist",
            "description": "Verwaltung von E-Mail-Blacklist-Eintraegen"
        },
        {
            "name": "emailtemplates",
            "description": "API-v2-Controller fuer Emailtemplates."
        },
        {
            "name": "faq",
            "description": "Verwaltung von FAQ-Eintraegen"
        },
        {
            "name": "firmmultishops",
            "description": "API-v2-Controller fuer Hersteller-Multishop-Beschreibungen."
        },
        {
            "name": "inventories",
            "description": "API-v2-Controller fuer Inventurlaeufe."
        },
        {
            "name": "languages",
            "description": "Verwaltung von Sprachen"
        },
        {
            "name": "manufactors",
            "description": "Verwaltung von Herstellern"
        },
        {
            "name": "multishopcustomergroups",
            "description": "API-v2-Controller fuer Multishopcustomergroups."
        },
        {
            "name": "multishopdomains",
            "description": "API-v2-Controller fuer Multishopdomains."
        },
        {
            "name": "multishops",
            "description": "API-v2-Controller fuer Multishops."
        },
        {
            "name": "news",
            "description": "Verwaltung von News"
        },
        {
            "name": "newsletterrecipients",
            "description": "Verwaltung von Newsletterempfaengern"
        },
        {
            "name": "newsletters",
            "description": "Verwaltung von Newslettern"
        },
        {
            "name": "newslettertemplates",
            "description": "Verwaltung von Newslettervorlagen"
        },
        {
            "name": "orderhistories",
            "description": "API-v2-Controller fuer Orderhistories."
        },
        {
            "name": "orders",
            "description": "Verwaltung von Bestellungen"
        },
        {
            "name": "ordershippinglists",
            "description": "API-v2-Controller fuer Ordershippinglists."
        },
        {
            "name": "orderstatusemails",
            "description": "API-v2-Controller fuer Orderstatusemails."
        },
        {
            "name": "orderstatuses",
            "description": "Verwaltung von Bestellstatus"
        },
        {
            "name": "packagedimensions",
            "description": "Verwaltung von Paketgroessen"
        },
        {
            "name": "packagings",
            "description": "API-v2-Controller fuer Packagings."
        },
        {
            "name": "page404",
            "description": "Verwaltung von erfassten 404-Seiten"
        },
        {
            "name": "paymenttypes",
            "description": "Verwaltung von Zahlungsarten"
        },
        {
            "name": "pricegroups",
            "description": "Verwaltung von Preisgruppen"
        },
        {
            "name": "printtemplates",
            "description": "API-v2-Controller fuer Printtemplates."
        },
        {
            "name": "productattributedefinitions",
            "description": "API-v2-Controller fuer Merkmaldefinitionen."
        },
        {
            "name": "productattributegroupassignments",
            "description": "API-v2-Controller fuer Merkmalgruppen-Zuordnungen."
        },
        {
            "name": "productattributegroups",
            "description": "API-v2-Controller fuer Merkmalgruppen."
        },
        {
            "name": "productattributes",
            "description": "API-v2-Controller fuer Produktmerkmale."
        },
        {
            "name": "productattributevalues",
            "description": "API-v2-Controller fuer Merkmalwerte."
        },
        {
            "name": "productbulletpoints",
            "description": "API-v2-Controller fuer Productbulletpoints."
        },
        {
            "name": "productbundles",
            "description": "API-v2-Controller fuer Productbundles."
        },
        {
            "name": "productcategoryassignments",
            "description": "API-v2-Controller fuer Productcategoryassignments."
        },
        {
            "name": "productcountryexclusions",
            "description": "API-v2-Controller fuer Productcountryexclusions."
        },
        {
            "name": "productdownloads",
            "description": "API-v2-Controller fuer Productdownloads."
        },
        {
            "name": "productfaqs",
            "description": "API-v2-Controller fuer Productfaqs."
        },
        {
            "name": "productfreetexts",
            "description": "API-v2-Controller fuer Productfreetexts."
        },
        {
            "name": "productimages",
            "description": "API-v2-Controller fuer Productimages."
        },
        {
            "name": "productlicensekeys",
            "description": "API-v2-Controller fuer Productlicensekeys."
        },
        {
            "name": "productnotifications",
            "description": "API-v2-Controller fuer Productnotifications."
        },
        {
            "name": "productnutrition",
            "description": "API-v2-Controller fuer Productnutrition."
        },
        {
            "name": "productorderfieldgroupassignments",
            "description": "API-v2-Controller fuer Productorderfieldgroupassignments."
        },
        {
            "name": "productorderfieldgroups",
            "description": "API-v2-Controller fuer Productorderfieldgroups."
        },
        {
            "name": "productorderfields",
            "description": "API-v2-Controller fuer Productorderfields."
        },
        {
            "name": "productpaymentexclusions",
            "description": "API-v2-Controller fuer Productpaymentexclusions."
        },
        {
            "name": "productpresenters",
            "description": "Verwaltung von Produktdarstellungs-Konfigurationen"
        },
        {
            "name": "productratings",
            "description": "API-v2-Controller fuer Productratings."
        },
        {
            "name": "products",
            "description": "Verwaltung von Produkten"
        },
        {
            "name": "productshippingmethods",
            "description": "API-v2-Controller fuer Productshippingmethods."
        },
        {
            "name": "productspricehistory",
            "description": "Verwaltung der Produkt-Preishistorie"
        },
        {
            "name": "productsstockhistory",
            "description": "Verwaltung der Produkt-Bestandshistorie"
        },
        {
            "name": "productvariationgroups",
            "description": "API-v2-Controller fuer Produkt-Variantengruppen."
        },
        {
            "name": "productvariationitems",
            "description": "API-v2-Controller fuer Produkt-Variantenelemente."
        },
        {
            "name": "productviewtabs",
            "description": "Verwaltung von Produktdetail-Karteireitern"
        },
        {
            "name": "productvisibility",
            "description": "API-v2-Controller fuer Productvisibility."
        },
        {
            "name": "promotions",
            "description": "API-v2-Controller fuer Aktionen."
        },
        {
            "name": "protectedshops",
            "description": "API-v2-Controller fuer Protectedshops."
        },
        {
            "name": "redirects",
            "description": "Verwaltung von URL-Weiterleitungen"
        },
        {
            "name": "referrers",
            "description": "API-v2-Controller fuer Referrer-Logeintraege."
        },
        {
            "name": "salutations",
            "description": "Verwaltung von Kundenanreden"
        },
        {
            "name": "searchstatslogs",
            "description": "API-v2-Controller fuer Suchstatistik-Logeintraege."
        },
        {
            "name": "securityiprules",
            "description": "API-v2-Controller fuer Securityiprules."
        },
        {
            "name": "shippinggroups",
            "description": "Verwaltung von Versandgruppen"
        },
        {
            "name": "shippinglabels",
            "description": "API-v2-Controller fuer Versandlabels."
        },
        {
            "name": "shippinglists",
            "description": "Verwaltung von Versandlisten"
        },
        {
            "name": "shippingtypes",
            "description": "Verwaltung von Versandarten"
        },
        {
            "name": "shippingzones",
            "description": "Verwaltung von Versandzonen"
        },
        {
            "name": "socialassets",
            "description": "Bildspeicherung fuer Social-Media-Beitraege."
        },
        {
            "name": "socialinsights",
            "description": "Gespeicherte Reichweiten- und Interaktionswerte fuer Social-Media-Inhalte."
        },
        {
            "name": "socialposts",
            "description": "Entwuerfe, Planung und Veroeffentlichung fuer Facebook und Instagram."
        },
        {
            "name": "socialtargets",
            "description": "Verbundene Facebook-Seiten und Instagram-Konten ohne Zugangsdaten."
        },
        {
            "name": "socialvideos",
            "description": "Videospeicherung fuer Social-Media-Beitraege und Reels."
        },
        {
            "name": "statictexts",
            "description": "API-v2-Controller fuer statische Textbereiche."
        },
        {
            "name": "statsgroups",
            "description": "Verwaltung von Auswertungsgruppen"
        },
        {
            "name": "stockbookings",
            "description": "Verwaltung von Warenbewegungen"
        },
        {
            "name": "subdomains",
            "description": "Verwaltung von Subdomain-Weiterleitungen"
        },
        {
            "name": "subscriptionintervals",
            "description": "API-v2-Controller fuer Subscriptionintervals."
        },
        {
            "name": "subscriptionorders",
            "description": "API-v2-Controller fuer Abonnement-Bestellungen."
        },
        {
            "name": "subscriptionplans",
            "description": "API-v2-Controller fuer Subscriptionplans."
        },
        {
            "name": "supplierorders",
            "description": "Verwaltung von Lieferantenbestellungen"
        },
        {
            "name": "suppliers",
            "description": "Verwaltung von Lieferanten"
        },
        {
            "name": "systememails",
            "description": "API-v2-Controller fuer Systememails."
        },
        {
            "name": "tablecolumnsetups",
            "description": "API-v2-Controller fuer Tablecolumnsetups."
        },
        {
            "name": "taxes",
            "description": "Verwaltung von Steuersaetzen"
        },
        {
            "name": "textsnippets",
            "description": "Verwaltung von Textsnippets"
        },
        {
            "name": "themeareaparams",
            "description": "API-v2-Controller fuer Themeareaparams."
        },
        {
            "name": "themeareas",
            "description": "API-v2-Controller fuer Themeareas."
        },
        {
            "name": "themeareatpls",
            "description": "API-v2-Controller fuer Themeareatpls."
        },
        {
            "name": "themecontentlayouts",
            "description": "API-v2-Controller fuer Themecontentlayouts."
        },
        {
            "name": "themecontentlayoutsides",
            "description": "API-v2-Controller fuer Themecontentlayoutsides."
        },
        {
            "name": "themejsfiles",
            "description": "API-v2-Controller fuer Themejsfiles."
        },
        {
            "name": "themejsfileversions",
            "description": "API-v2-Controller fuer Themejsfileversions."
        },
        {
            "name": "themes",
            "description": "API-v2-Controller fuer Layout-Themes."
        },
        {
            "name": "trustedshops",
            "description": "API-v2-Controller fuer Trusted-Shops-Einstellungen."
        },
        {
            "name": "units",
            "description": "Verwaltung von Verpackungseinheiten"
        },
        {
            "name": "userfavorites",
            "description": "API-v2-Controller fuer Backend-Benutzerfavoriten."
        },
        {
            "name": "vouchercategories",
            "description": "API-v2-Controller fuer Gutschein-Kategoriezuordnungen."
        },
        {
            "name": "vouchercustomergroups",
            "description": "API-v2-Controller fuer Gutschein-Kundengruppenzuordnungen."
        },
        {
            "name": "vouchermanufactors",
            "description": "API-v2-Controller fuer Vouchermanufactors."
        },
        {
            "name": "voucherredemptions",
            "description": "API-v2-Controller fuer Voucherredemptions."
        },
        {
            "name": "vouchers",
            "description": "API-v2-Controller fuer Gutscheine."
        },
        {
            "name": "vouchervariations",
            "description": "API-v2-Controller fuer Vouchervariations."
        },
        {
            "name": "webhooks",
            "description": "Verwaltung von Webhooks"
        },
        {
            "name": "wishlists",
            "description": "API-v2-Controller fuer Merklisteneintraege."
        }
    ]
}