{
  "opencollection": "1.0.0",
  "info": {
    "name": "VirtoCommerce.Cart Catalog VirtoCommerce Platform API",
    "version": "v1"
  },
  "items": [
    {
      "info": {
        "name": "VirtoCommerce Platform",
        "type": "folder"
      },
      "items": [
        {
          "info": {
            "name": "ExternalSignIn_SignIn",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/externalsignin",
            "params": [
              {
                "name": "AuthenticationType",
                "value": "",
                "type": "query"
              },
              {
                "name": "ReturnUrl",
                "value": "",
                "type": "query"
              },
              {
                "name": "StoreId",
                "value": "",
                "type": "query"
              },
              {
                "name": "OidcUrl",
                "value": "",
                "type": "query"
              },
              {
                "name": "CallbackUrl",
                "value": "",
                "type": "query"
              }
            ]
          }
        },
        {
          "info": {
            "name": "ExternalSignIn_SignOut",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/externalsignin/signout",
            "params": [
              {
                "name": "authenticationType",
                "value": "",
                "type": "query"
              },
              {
                "name": "returnUrl",
                "value": "",
                "type": "query"
              }
            ]
          }
        },
        {
          "info": {
            "name": "ExternalSignIn_SignInCallback",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/externalsignin/callback",
            "params": [
              {
                "name": "returnUrl",
                "value": "",
                "type": "query"
              }
            ]
          }
        },
        {
          "info": {
            "name": "ExternalSignIn_GetExternalLoginProviders",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/externalsignin/providers"
          }
        },
        {
          "info": {
            "name": "Returns the host app's plugin manifest.\n\nIn production: cacheable — responds 304 on matching\n`If-None-Match`. The descriptor is built and hashed once at the\nservice layer (VirtoCommerce.Platform.Core.Modularity.IAppManifestService) and cached for the\nprocess lifetime, so 304 cache-hits short-circuit without touching the\nfilesystem.\nIn Development: `Cache-Control: no-store` is emitted and the 304\nfast path is skipped — every request returns 200 with a freshly built\nbody. This makes `yarn build` in a plugin folder visible on the\nnext page reload without restarting the platform.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/apps/:appId/manifest",
            "params": [
              {
                "name": "appId",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Returns the host app's plugin manifest.\n\nIn production: cacheable — responds 304 on matching\n`If-None-Match`. The descriptor is built and hashed once at the\nservice layer (VirtoCommerce.Platform.Core.Modularity.IAppManifestService) and cached for the\nprocess lifetime, so 304 cache-hits short-circuit without touching the\nfilesystem.\nIn Development: `Cache-Control: no-store` is emitted and the 304\nfast path is skipped — every request returns 200 with a freshly built\nbody. This makes `yarn build` i"
        },
        {
          "info": {
            "name": "Force-invalidate the manifest cache for every `appId`. The next\ncall to `GET /api/apps/{appId}/manifest` will rebuild the\ndescriptor from disk, picking up any plugin changes since the last\nbuild (new module installs, drop-in plugin replacements, plugin\nrebuilds).\n\nIn Development this isn't normally needed (the service bypasses its\ncache anyway), but the endpoint works in any environment for\noperators who want to refresh without restarting the platform.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/apps/manifest/invalidate",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Force-invalidate the manifest cache for every `appId`. The next\ncall to `GET /api/apps/{appId}/manifest` will rebuild the\ndescriptor from disk, picking up any plugin changes since the last\nbuild (new module installs, drop-in plugin replacements, plugin\nrebuilds).\n\nIn Development this isn't normally needed (the service bypasses its\ncache anyway), but the endpoint works in any environment for\noperators who want to refresh without restarting the platform."
        },
        {
          "info": {
            "name": "Gets the list of available apps, filtered by user permissions.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/apps"
          },
          "docs": "Gets the list of available apps, filtered by user permissions."
        },
        {
          "info": {
            "name": "Authorization_RevokeCurrentUserToken",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/revoke/token"
          }
        },
        {
          "info": {
            "name": "Authorization_Exchange",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/connect/token",
            "body": {
              "type": "form-urlencoded",
              "data": [
                {
                  "name": "grant_type",
                  "value": ""
                },
                {
                  "name": "scope",
                  "value": ""
                },
                {
                  "name": "username",
                  "value": ""
                },
                {
                  "name": "password",
                  "value": ""
                },
                {
                  "name": "storeId",
                  "value": ""
                },
                {
                  "name": "user_id",
                  "value": ""
                }
              ]
            }
          }
        },
        {
          "info": {
            "name": "Authorization_Authorize",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/connect/authorize"
          }
        },
        {
          "info": {
            "name": "Authorization_Authorize",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/connect/authorize"
          }
        },
        {
          "info": {
            "name": "Authorization_Userinfo",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/connect/userinfo"
          }
        },
        {
          "info": {
            "name": "Authorization_Userinfo",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/connect/userinfo"
          }
        },
        {
          "info": {
            "name": "Authorization_Logout",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/connect/logout"
          }
        },
        {
          "info": {
            "name": "Force set changes last modified date",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/changes/force",
            "params": [
              {
                "name": "Scope",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Force set changes last modified date"
        },
        {
          "info": {
            "name": "ChangeLog_ResetPlatformCache",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform-cache/reset",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Get last modified date for given scope\nUsed for signal of what something changed and for cache invalidation in external platform clients",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/changes/lastmodifieddate",
            "params": [
              {
                "name": "scope",
                "value": "",
                "type": "query"
              }
            ]
          },
          "docs": "Get last modified date for given scope\nUsed for signal of what something changed and for cache invalidation in external platform clients"
        },
        {
          "info": {
            "name": "ChangeLog_GetChangedEntities",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/changes/changed-entities",
            "body": {
              "type": "json",
              "data": "{}"
            }
          }
        },
        {
          "info": {
            "name": "ChangeLog_ResetChangedEntities",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/changes/changed-entities/reset",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "ChangeLog_SearchChanges",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/changelog/search",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "ChangeLog_SearchChangesV2",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/changelog/v2/search",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "ChangeLog_SearchTypeChangeHistory",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/changelog/:type/changes",
            "params": [
              {
                "name": "type",
                "value": "",
                "type": "path"
              },
              {
                "name": "start",
                "value": "",
                "type": "query"
              },
              {
                "name": "end",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "DeveloperTools_GetDeveloperTools",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/developer-tools",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Diagnostics_GetSystemInfo",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/diagnostics/systeminfo",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Get installed modules with errors",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/diagnostics/errors"
          },
          "docs": "Get installed modules with errors"
        },
        {
          "info": {
            "name": "Get object types which support dynamic properties",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/dynamic/types",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get object types which support dynamic properties"
        },
        {
          "info": {
            "name": "DynamicProperties_GetAllDynamicProperties",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/dynamic/properties",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Add new dynamic property",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/dynamic/properties",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Add new dynamic property"
        },
        {
          "info": {
            "name": "Update existing dynamic property",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "{{baseUrl}}/api/platform/dynamic/properties",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update existing dynamic property"
        },
        {
          "info": {
            "name": "Delete dynamic property",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "{{baseUrl}}/api/platform/dynamic/properties",
            "params": [
              {
                "name": "propertyIds",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete dynamic property"
        },
        {
          "info": {
            "name": "Get dynamic properties registered for object type",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/dynamic/properties/search",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get dynamic properties registered for object type"
        },
        {
          "info": {
            "name": "Does nothing. Just a way to expose DynamicObjectProperty thru Swagger.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/dynamic",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Does nothing. Just a way to expose DynamicObjectProperty thru Swagger."
        },
        {
          "info": {
            "name": "DynamicProperties_GetAllDictionaryItems",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/dynamic/dictionaryitems",
            "params": [
              {
                "name": "propertyId",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Add or update dictionary items",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/dynamic/dictionaryitems",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Fill item ID to update existing item or leave it empty to create a new item."
        },
        {
          "info": {
            "name": "Delete dictionary items",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "{{baseUrl}}/api/platform/dynamic/dictionaryitems",
            "params": [
              {
                "name": "ids",
                "value": "",
                "type": "query",
                "description": "IDs of dictionary items to delete."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete dictionary items"
        },
        {
          "info": {
            "name": "Get dictionary items",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/dynamic/dictionaryitems/search",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get dictionary items"
        },
        {
          "info": {
            "name": "Get background job status",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/jobs/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "Job ID."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get background job status"
        },
        {
          "info": {
            "name": "LocalizableSettings_GetSettingsAndLanguages",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/localizable-settings",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "LocalizableSettings_GetDictionaryValues",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/localizable-settings/:name/dictionary-items/:language/values",
            "params": [
              {
                "name": "name",
                "value": "",
                "type": "path"
              },
              {
                "name": "language",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "LocalizableSettings_SaveDictionaryItems",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/localizable-settings/:name/dictionary-items",
            "params": [
              {
                "name": "name",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "LocalizableSettings_DeleteDictionaryItems",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "{{baseUrl}}/api/platform/localizable-settings/:name/dictionary-items",
            "params": [
              {
                "name": "name",
                "value": "",
                "type": "path"
              },
              {
                "name": "values",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Reload modules",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/modules/reload",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Reload modules"
        },
        {
          "info": {
            "name": "Get installed modules",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/modules",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get installed modules"
        },
        {
          "info": {
            "name": "Get all dependent modules for a module",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/modules/getdependents",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get all dependent modules for a module"
        },
        {
          "info": {
            "name": "Returns a flat expanded list of modules that depend on passed modules",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/modules/getmissingdependencies",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Returns a flat expanded list of modules that depend on passed modules"
        },
        {
          "info": {
            "name": "Upload module package for installation or update",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/modules/localstorage",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Upload module package for installation or update"
        },
        {
          "info": {
            "name": "Install modules",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/modules/install",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Install modules"
        },
        {
          "info": {
            "name": "Install modules using lightweight requests",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/modules/install/v2",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Install modules using lightweight requests"
        },
        {
          "info": {
            "name": "Update modules",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/modules/update",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update modules"
        },
        {
          "info": {
            "name": "Update modules using lightweight requests",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/modules/update/v2",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update modules using lightweight requests"
        },
        {
          "info": {
            "name": "Uninstall module",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/modules/uninstall",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Uninstall module"
        },
        {
          "info": {
            "name": "Uninstall modules using lightweight requests",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/modules/uninstall/v2",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Uninstall modules using lightweight requests"
        },
        {
          "info": {
            "name": "Restart web application",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/modules/restart",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Restart web application"
        },
        {
          "info": {
            "name": "Auto-install modules with specified groups",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/modules/autoinstall",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Auto-install modules with specified groups"
        },
        {
          "info": {
            "name": "Get module loading order",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/modules/loading-order",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get module loading order"
        },
        {
          "info": {
            "name": "Validate that a specific module version package exists at the download URL.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/modules/:moduleId/versions/:version/validate",
            "params": [
              {
                "name": "moduleId",
                "value": "",
                "type": "path",
                "description": "Module identifier"
              },
              {
                "name": "version",
                "value": "",
                "type": "path",
                "description": "Version to validate"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Validate that a specific module version package exists at the download URL."
        },
        {
          "info": {
            "name": "Install a specific version of a module.\nValidates the package URL, registers the custom version, and schedules installation.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/modules/:moduleId/versions/:version/install",
            "params": [
              {
                "name": "moduleId",
                "value": "",
                "type": "path",
                "description": "Module identifier"
              },
              {
                "name": "version",
                "value": "",
                "type": "path",
                "description": "Version to install"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Install a specific version of a module.\nValidates the package URL, registers the custom version, and schedules installation."
        },
        {
          "info": {
            "name": "Install the latest available version of a module.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/modules/:moduleId/install",
            "params": [
              {
                "name": "moduleId",
                "value": "",
                "type": "path",
                "description": "Module identifier"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Install the latest available version of a module."
        },
        {
          "info": {
            "name": "Uninstall a module.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/modules/:moduleId/uninstall",
            "params": [
              {
                "name": "moduleId",
                "value": "",
                "type": "path",
                "description": "Module identifier"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Uninstall a module."
        },
        {
          "info": {
            "name": "OAuthApps_New",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/oauthapps/new",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "OAuthApps_SaveAsync",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/oauthapps",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "OAuthApps_DeleteAsync",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "{{baseUrl}}/api/platform/oauthapps",
            "params": [
              {
                "name": "clientIds",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "OAuthApps_SearchAsync",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/oauthapps/search",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "SearchAsync push notifications",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/pushnotifications",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "SearchAsync push notifications"
        },
        {
          "info": {
            "name": "Mark all notifications as read",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/pushnotifications/markAllAsRead",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Mark all notifications as read"
        },
        {
          "info": {
            "name": "Security_SearchUserSessions",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/users/:userId/sessions/search",
            "params": [
              {
                "name": "userId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Security_TerminateUserSession",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "{{baseUrl}}/api/platform/security/users/:userId/sessions/:id",
            "params": [
              {
                "name": "userId",
                "value": "",
                "type": "path"
              },
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Security_TerminateAllUserSessions",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "{{baseUrl}}/api/platform/security/users/:userId/sessions",
            "params": [
              {
                "name": "userId",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Sign in with user name and password",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/login",
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Verifies provided credentials and if succeeded returns full user details, otherwise returns 401 Unauthorized."
        },
        {
          "info": {
            "name": "Sign out",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/logout"
          },
          "docs": "Sign out"
        },
        {
          "info": {
            "name": "Get current user details",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/currentuser"
          },
          "docs": "Get current user details"
        },
        {
          "info": {
            "name": "Security_Userinfo",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/userinfo",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Get all registered permissions",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/permissions",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get all registered permissions"
        },
        {
          "info": {
            "name": "SearchAsync roles by keyword",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/roles/search",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "SearchAsync roles by keyword"
        },
        {
          "info": {
            "name": "Get role by ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/roles/:roleName",
            "params": [
              {
                "name": "roleName",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get role by ID"
        },
        {
          "info": {
            "name": "Update an existing role or create new",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "{{baseUrl}}/api/platform/security/roles",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update an existing role or create new"
        },
        {
          "info": {
            "name": "Delete roles by ID",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "{{baseUrl}}/api/platform/security/roles",
            "params": [
              {
                "name": "ids",
                "value": "",
                "type": "query",
                "description": "An array of role IDs."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete roles by ID"
        },
        {
          "info": {
            "name": "SearchAsync users by keyword",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/users/search",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "SearchAsync users by keyword"
        },
        {
          "info": {
            "name": "Get users by IDs",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/users",
            "params": [
              {
                "name": "ids",
                "value": "",
                "type": "query",
                "description": "An array of user IDs."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get users by IDs"
        },
        {
          "info": {
            "name": "Update user details by user ID",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "{{baseUrl}}/api/platform/security/users",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update user details by user ID"
        },
        {
          "info": {
            "name": "Delete users by name",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "{{baseUrl}}/api/platform/security/users",
            "params": [
              {
                "name": "names",
                "value": "",
                "type": "query",
                "description": "An array of user names."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Delete users by name"
        },
        {
          "info": {
            "name": "Get user details by user name",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/users/:userName",
            "params": [
              {
                "name": "userName",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get user details by user name"
        },
        {
          "info": {
            "name": "Get user details by user ID",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/users/id/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get user details by user ID"
        },
        {
          "info": {
            "name": "Get user details by user email",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/users/email/:email",
            "params": [
              {
                "name": "email",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get user details by user email"
        },
        {
          "info": {
            "name": "Get user details by external login provider",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/users/login/external/:loginProvider/:providerKey",
            "params": [
              {
                "name": "loginProvider",
                "value": "",
                "type": "path"
              },
              {
                "name": "providerKey",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get user details by external login provider"
        },
        {
          "info": {
            "name": "Create new user",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/users/create",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Create new user"
        },
        {
          "info": {
            "name": "Change password for current user.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/currentuser/changepassword",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Change password for current user."
        },
        {
          "info": {
            "name": "Change password",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/users/:userName/changepassword",
            "params": [
              {
                "name": "userName",
                "value": "",
                "type": "path",
                "description": "user name"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Change password"
        },
        {
          "info": {
            "name": "Reset password confirmation",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/users/:userName/resetpassword",
            "params": [
              {
                "name": "userName",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Reset password confirmation"
        },
        {
          "info": {
            "name": "Reset password confirmation",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/users/:userId/resetpasswordconfirm",
            "params": [
              {
                "name": "userId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Reset password confirmation"
        },
        {
          "info": {
            "name": "Validate password reset token",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/users/:userId/validatepasswordresettoken",
            "params": [
              {
                "name": "userId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            }
          },
          "docs": "Validate password reset token"
        },
        {
          "info": {
            "name": "Send email with instructions on how to reset user password.",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/users/:loginOrEmail/requestpasswordreset",
            "params": [
              {
                "name": "loginOrEmail",
                "value": "",
                "type": "path"
              }
            ]
          },
          "docs": "Verifies provided userName and (if succeeded) sends email."
        },
        {
          "info": {
            "name": "Security_ValidatePassword",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/validatepassword",
            "body": {
              "type": "json",
              "data": "{}"
            }
          }
        },
        {
          "info": {
            "name": "Security_ValidateUserPassword",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/validateuserpassword",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Checks if user locked",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/users/:id/locked",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "User id"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Checks if user locked"
        },
        {
          "info": {
            "name": "Checks if manual password change is enabled",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/passwordchangeenabled",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Checks if manual password change is enabled"
        },
        {
          "info": {
            "name": "Lock user",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/users/:id/lock",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": ">User id"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Lock user"
        },
        {
          "info": {
            "name": "Unlock user",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/users/:id/unlock",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": ">User id"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Unlock user"
        },
        {
          "info": {
            "name": "Security_GetUserApiKeys",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/users/:id/apikeys",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Security_SaveUserApiKey",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/users/apikeys",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Security_UpdateUserApiKey",
            "type": "http"
          },
          "http": {
            "method": "PUT",
            "url": "{{baseUrl}}/api/platform/security/users/apikeys",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Security_DeleteUserApiKeys",
            "type": "http"
          },
          "http": {
            "method": "DELETE",
            "url": "{{baseUrl}}/api/platform/security/users/apikeys",
            "params": [
              {
                "name": "ids",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Get allowed login types",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/logintypes"
          },
          "docs": "Get allowed login types"
        },
        {
          "info": {
            "name": "Verify user email",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/users/:userId/sendVerificationEmail",
            "params": [
              {
                "name": "userId",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Verify user email"
        },
        {
          "info": {
            "name": "Security_ConfirmEmail",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/users/:userId/confirmEmail",
            "params": [
              {
                "name": "userId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Security_GenerateChangeEmailToken",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/users/:userId/generateChangeEmailToken",
            "params": [
              {
                "name": "userId",
                "value": "",
                "type": "path"
              },
              {
                "name": "newEmail",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Security_GenerateEmailConfirmationToken",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/users/:userId/generateEmailConfirmationToken",
            "params": [
              {
                "name": "userId",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Security_GeneratePasswordResetToken",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/users/:userId/generatePasswordResetToken",
            "params": [
              {
                "name": "userId",
                "value": "",
                "type": "path"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Security_GenerateUserToken",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/security/users/:userId/generateToken",
            "params": [
              {
                "name": "userId",
                "value": "",
                "type": "path"
              },
              {
                "name": "tokenProvider",
                "value": "",
                "type": "query"
              },
              {
                "name": "purpose",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Security_VerifyUserToken",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/security/users/:userId/verifyToken",
            "params": [
              {
                "name": "userId",
                "value": "",
                "type": "path"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Get all settings",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/settings",
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get all settings"
        },
        {
          "info": {
            "name": "Update settings values",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/settings",
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Update settings values"
        },
        {
          "info": {
            "name": "Get settings registered by specific module",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/settings/modules/:id",
            "params": [
              {
                "name": "id",
                "value": "",
                "type": "path",
                "description": "Module ID."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get settings registered by specific module"
        },
        {
          "info": {
            "name": "Get setting details by name",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/settings/:name",
            "params": [
              {
                "name": "name",
                "value": "",
                "type": "path",
                "description": "Setting system name."
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get setting details by name"
        },
        {
          "info": {
            "name": "Get UI customization setting",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/settings/ui/customization"
          },
          "docs": "Get UI customization setting"
        },
        {
          "info": {
            "name": "Get global settings schema (metadata only, no values)",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/settings/v2/global/schema",
            "params": [
              {
                "name": "moduleId",
                "value": "",
                "type": "query"
              },
              {
                "name": "keyword",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get global settings schema (metadata only, no values)"
        },
        {
          "info": {
            "name": "Get global settings values as a flat { name: value } dictionary.\nOptional moduleId narrows the response to a single\nmodule's settings — same filter as M:VirtoCommerce.Platform.Web.Controllers.Api.SettingsV2Controller.GetGlobalSchema(System.String,System.String), so\na frontend can read+use one module's values in one round-trip\nwithout a follow-up /schema lookup.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/settings/v2/global/values",
            "params": [
              {
                "name": "modifiedOnly",
                "value": "",
                "type": "query"
              },
              {
                "name": "moduleId",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get global settings values as a flat { name: value } dictionary.\nOptional moduleId narrows the response to a single\nmodule's settings — same filter as M:VirtoCommerce.Platform.Web.Controllers.Api.SettingsV2Controller.GetGlobalSchema(System.String,System.String), so\na frontend can read+use one module's values in one round-trip\nwithout a follow-up /schema lookup."
        },
        {
          "info": {
            "name": "SettingsV2_SaveGlobalValues",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/settings/v2/global/values",
            "params": [
              {
                "name": "replaceAll",
                "value": "",
                "type": "query"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Get tenant settings schema (metadata only, no values).\nSchema depends only on tenantType registration, not on a specific tenant instance.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/settings/v2/tenant/:tenantType/schema",
            "params": [
              {
                "name": "tenantType",
                "value": "",
                "type": "path"
              },
              {
                "name": "moduleId",
                "value": "",
                "type": "query"
              },
              {
                "name": "keyword",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get tenant settings schema (metadata only, no values).\nSchema depends only on tenantType registration, not on a specific tenant instance."
        },
        {
          "info": {
            "name": "Get tenant settings values as a flat { name: value } dictionary.\nOptional moduleId narrows the response to a single\nmodule's settings.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/settings/v2/tenant/:tenantType/:tenantId/values",
            "params": [
              {
                "name": "tenantType",
                "value": "",
                "type": "path"
              },
              {
                "name": "tenantId",
                "value": "",
                "type": "path"
              },
              {
                "name": "modifiedOnly",
                "value": "",
                "type": "query"
              },
              {
                "name": "moduleId",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get tenant settings values as a flat { name: value } dictionary.\nOptional moduleId narrows the response to a single\nmodule's settings."
        },
        {
          "info": {
            "name": "SettingsV2_SaveTenantValues",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/settings/v2/tenant/:tenantType/:tenantId/values",
            "params": [
              {
                "name": "tenantType",
                "value": "",
                "type": "path"
              },
              {
                "name": "tenantId",
                "value": "",
                "type": "path"
              },
              {
                "name": "replaceAll",
                "value": "",
                "type": "query"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        },
        {
          "info": {
            "name": "Get the current user's UserProfile settings schema (metadata only).\nSchema is the same for every user — it's defined by the\nplatform's UserProfile-tenant registration. Optionally filter\nby moduleId so a frontend only fetches its own module's\nper-user settings.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/settings/v2/me/schema",
            "params": [
              {
                "name": "moduleId",
                "value": "",
                "type": "query"
              },
              {
                "name": "keyword",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get the current user's UserProfile settings schema (metadata only).\nSchema is the same for every user — it's defined by the\nplatform's UserProfile-tenant registration. Optionally filter\nby moduleId so a frontend only fetches its own module's\nper-user settings."
        },
        {
          "info": {
            "name": "Get the current user's effective UserProfile settings values\nas a flat { name: value } dictionary. Optional moduleId\nnarrows the response to a single module's per-user settings — same\nfilter M:VirtoCommerce.Platform.Web.Controllers.Api.SettingsV2Controller.GetMeSchema(System.String,System.String) accepts, so a frontend can do a\nsingle round-trip read without a follow-up /me/schema lookup.",
            "type": "http"
          },
          "http": {
            "method": "GET",
            "url": "{{baseUrl}}/api/platform/settings/v2/me/values",
            "params": [
              {
                "name": "modifiedOnly",
                "value": "",
                "type": "query"
              },
              {
                "name": "moduleId",
                "value": "",
                "type": "query"
              }
            ],
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          },
          "docs": "Get the current user's effective UserProfile settings values\nas a flat { name: value } dictionary. Optional moduleId\nnarrows the response to a single module's per-user settings — same\nfilter M:VirtoCommerce.Platform.Web.Controllers.Api.SettingsV2Controller.GetMeSchema(System.String,System.String) accepts, so a frontend can do a\nsingle round-trip read without a follow-up /me/schema lookup."
        },
        {
          "info": {
            "name": "SettingsV2_SaveMeValues",
            "type": "http"
          },
          "http": {
            "method": "POST",
            "url": "{{baseUrl}}/api/platform/settings/v2/me/values",
            "params": [
              {
                "name": "replaceAll",
                "value": "",
                "type": "query"
              }
            ],
            "body": {
              "type": "json",
              "data": "{}"
            },
            "auth": {
              "type": "oauth2",
              "flow": "client_credentials",
              "accessTokenUrl": "/connect/token",
              "credentials": {
                "clientId": "{{clientId}}",
                "clientSecret": "{{clientSecret}}"
              }
            }
          }
        }
      ]
    }
  ],
  "bundled": true
}