Virto Commerce VirtoCommerce Platform API

B2B Innovation Platform

Operations 124

GET /externalsignin #
GET /externalsignin/signout #
GET /externalsignin/callback #
GET /externalsignin/providers #
GET /api/apps/{appId}/manifest Returns the host app's plugin manifest. In production: cacheable — responds 304 on matching `If-None-Match`. The descriptor is built and hashed once at the service layer (VirtoComm #
POST /api/apps/manifest/invalidate Force-invalidate the manifest cache for every `appId`. The next call to `GET /api/apps/{appId}/manifest` will rebuild the descriptor from disk, picking up any plugin changes since #
GET /api/platform/apps Gets the list of available apps, filtered by user permissions. #
POST /revoke/token #
POST /connect/token #
GET /connect/authorize #
POST /connect/authorize #
GET /connect/userinfo #
POST /connect/userinfo #
GET /connect/logout #
POST /api/changes/force Force set changes last modified date #
POST /api/platform-cache/reset #
GET /api/changes/lastmodifieddate Get last modified date for given scope Used for signal of what something changed and for cache invalidation in external platform clients #
POST /api/changes/changed-entities #
POST /api/changes/changed-entities/reset #
POST /api/platform/changelog/search #
POST /api/platform/changelog/v2/search #
GET /api/platform/changelog/{type}/changes #
GET /api/platform/developer-tools #
GET /api/platform/diagnostics/systeminfo #
GET /api/platform/diagnostics/errors Get installed modules with errors #
GET /api/platform/dynamic/types Get object types which support dynamic properties #
GET /api/platform/dynamic/properties #
POST /api/platform/dynamic/properties Add new dynamic property #
PUT /api/platform/dynamic/properties Update existing dynamic property #
DELETE /api/platform/dynamic/properties Delete dynamic property #
POST /api/platform/dynamic/properties/search Get dynamic properties registered for object type #
POST /api/platform/dynamic Does nothing. Just a way to expose DynamicObjectProperty thru Swagger. #
GET /api/platform/dynamic/dictionaryitems #
POST /api/platform/dynamic/dictionaryitems Add or update dictionary items #
DELETE /api/platform/dynamic/dictionaryitems Delete dictionary items #
POST /api/platform/dynamic/dictionaryitems/search Get dictionary items #
GET /api/platform/jobs/{id} Get background job status #
GET /api/platform/localizable-settings #
GET /api/platform/localizable-settings/{name}/dictionary-items/{language}/values #
POST /api/platform/localizable-settings/{name}/dictionary-items #
DELETE /api/platform/localizable-settings/{name}/dictionary-items #
POST /api/platform/modules/reload Reload modules #
GET /api/platform/modules Get installed modules #
POST /api/platform/modules/getdependents Get all dependent modules for a module #
POST /api/platform/modules/getmissingdependencies Returns a flat expanded list of modules that depend on passed modules #
POST /api/platform/modules/localstorage Upload module package for installation or update #
POST /api/platform/modules/install Install modules #
POST /api/platform/modules/install/v2 Install modules using lightweight requests #
POST /api/platform/modules/update Update modules #
POST /api/platform/modules/update/v2 Update modules using lightweight requests #
POST /api/platform/modules/uninstall Uninstall module #
POST /api/platform/modules/uninstall/v2 Uninstall modules using lightweight requests #
POST /api/platform/modules/restart Restart web application #
POST /api/platform/modules/autoinstall Auto-install modules with specified groups #
GET /api/platform/modules/loading-order Get module loading order #
GET /api/platform/modules/{moduleId}/versions/{version}/validate Validate that a specific module version package exists at the download URL. #
POST /api/platform/modules/{moduleId}/versions/{version}/install Install a specific version of a module. Validates the package URL, registers the custom version, and schedules installation. #
POST /api/platform/modules/{moduleId}/install Install the latest available version of a module. #
POST /api/platform/modules/{moduleId}/uninstall Uninstall a module. #
GET /api/platform/oauthapps/new #
POST /api/platform/oauthapps #
DELETE /api/platform/oauthapps #
POST /api/platform/oauthapps/search #
POST /api/platform/pushnotifications SearchAsync push notifications #
POST /api/platform/pushnotifications/markAllAsRead Mark all notifications as read #
POST /api/platform/security/users/{userId}/sessions/search #
DELETE /api/platform/security/users/{userId}/sessions/{id} #
DELETE /api/platform/security/users/{userId}/sessions #
POST /api/platform/security/login Sign in with user name and password #
GET /api/platform/security/logout Sign out #
GET /api/platform/security/currentuser Get current user details #
GET /api/platform/security/userinfo #
GET /api/platform/security/permissions Get all registered permissions #
POST /api/platform/security/roles/search SearchAsync roles by keyword #
GET /api/platform/security/roles/{roleName} Get role by ID #
DELETE /api/platform/security/roles Delete roles by ID #
PUT /api/platform/security/roles Update an existing role or create new #
POST /api/platform/security/users/search SearchAsync users by keyword #
GET /api/platform/security/users Get users by IDs #
PUT /api/platform/security/users Update user details by user ID #
DELETE /api/platform/security/users Delete users by name #
GET /api/platform/security/users/{userName} Get user details by user name #
GET /api/platform/security/users/id/{id} Get user details by user ID #
GET /api/platform/security/users/email/{email} Get user details by user email #
GET /api/platform/security/users/login/external/{loginProvider}/{providerKey} Get user details by external login provider #
POST /api/platform/security/users/create Create new user #
POST /api/platform/security/currentuser/changepassword Change password for current user. #
POST /api/platform/security/users/{userName}/changepassword Change password #
POST /api/platform/security/users/{userName}/resetpassword Reset password confirmation #
POST /api/platform/security/users/{userId}/resetpasswordconfirm Reset password confirmation #
POST /api/platform/security/users/{userId}/validatepasswordresettoken Validate password reset token #
POST /api/platform/security/users/{loginOrEmail}/requestpasswordreset Send email with instructions on how to reset user password. #
POST /api/platform/security/validatepassword #
POST /api/platform/security/validateuserpassword #
GET /api/platform/security/users/{id}/locked Checks if user locked #
GET /api/platform/security/passwordchangeenabled Checks if manual password change is enabled #
POST /api/platform/security/users/{id}/lock Lock user #
POST /api/platform/security/users/{id}/unlock Unlock user #
GET /api/platform/security/users/{id}/apikeys #
POST /api/platform/security/users/apikeys #
PUT /api/platform/security/users/apikeys #
DELETE /api/platform/security/users/apikeys #
GET /api/platform/security/logintypes Get allowed login types #
POST /api/platform/security/users/{userId}/sendVerificationEmail Verify user email #
POST /api/platform/security/users/{userId}/confirmEmail #
GET /api/platform/security/users/{userId}/generateChangeEmailToken #
GET /api/platform/security/users/{userId}/generateEmailConfirmationToken #
GET /api/platform/security/users/{userId}/generatePasswordResetToken #
GET /api/platform/security/users/{userId}/generateToken #
POST /api/platform/security/users/{userId}/verifyToken #
GET /api/platform/settings Get all settings #
POST /api/platform/settings Update settings values #
GET /api/platform/settings/modules/{id} Get settings registered by specific module #
GET /api/platform/settings/{name} Get setting details by name #
GET /api/platform/settings/ui/customization Get UI customization setting #
GET /api/platform/settings/v2/global/schema Get global settings schema (metadata only, no values) #
GET /api/platform/settings/v2/global/values Get global settings values as a flat { name: value } dictionary. Optional moduleId narrows the response to a single module's settings — same filter as M:VirtoCommerce.Platform.Web. #
POST /api/platform/settings/v2/global/values #
GET /api/platform/settings/v2/tenant/{tenantType}/schema Get tenant settings schema (metadata only, no values). Schema depends only on tenantType registration, not on a specific tenant instance. #
GET /api/platform/settings/v2/tenant/{tenantType}/{tenantId}/values Get tenant settings values as a flat { name: value } dictionary. Optional moduleId narrows the response to a single module's settings. #
POST /api/platform/settings/v2/tenant/{tenantType}/{tenantId}/values #
GET /api/platform/settings/v2/me/schema Get the current user's UserProfile settings schema (metadata only). Schema is the same for every user — it's defined by the platform's UserProfile-tenant registration. Optionally f #
GET /api/platform/settings/v2/me/values Get the current user's effective UserProfile settings values as a flat { name: value } dictionary. Optional moduleId narrows the response to a single module's per-user settings — s #
POST /api/platform/settings/v2/me/values #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/virto-commerce-virtocommerce-platform-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

virto-commerce-virtocommerce-platform-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: VirtoCommerce.Cart Catalog VirtoCommerce Platform API
  version: v1
  description: Easily manage your products, categories, variations, and properties
servers:
- url: https://virtostart-demo-admin.govirto.com/api
  description: Base URL declared by the provider in apis.yml (roadmap#122).
tags:
- name: VirtoCommerce Platform
  description: B2B Innovation Platform
paths:
  /externalsignin:
    get:
      tags:
      - VirtoCommerce Platform
      operationId: ExternalSignIn_SignIn
      parameters:
      - name: AuthenticationType
        in: query
        schema:
          type: string
      - name: ReturnUrl
        in: query
        schema:
          type: string
      - name: StoreId
        in: query
        schema:
          type: string
      - name: OidcUrl
        in: query
        schema:
          type: string
      - name: CallbackUrl
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /externalsignin/signout:
    get:
      tags:
      - VirtoCommerce Platform
      operationId: ExternalSignIn_SignOut
      parameters:
      - name: authenticationType
        in: query
        schema:
          type: string
      - name: returnUrl
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /externalsignin/callback:
    get:
      tags:
      - VirtoCommerce Platform
      operationId: ExternalSignIn_SignInCallback
      parameters:
      - name: returnUrl
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /externalsignin/providers:
    get:
      tags:
      - VirtoCommerce Platform
      operationId: ExternalSignIn_GetExternalLoginProviders
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExternalSignInProviderInfo'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExternalSignInProviderInfo'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ExternalSignInProviderInfo'
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/apps/{appId}/manifest:
    get:
      tags:
      - VirtoCommerce Platform
      summary: 'Returns the host app''s plugin manifest.


        In production: cacheable — responds 304 on matching

        `If-None-Match`. The descriptor is built and hashed once at the

        service layer (VirtoCommerce.Platform.Core.Modularity.IAppManifestService) and cached for the

        process lifetime, so 304 cache-hits short-circuit without touching the

        filesystem.

        In Development: `Cache-Control: no-store` is emitted and the 304

        fast path is skipped — every request returns 200 with a freshly built

        body. This makes `yarn build` in a plugin folder visible on the

        next page reload without restarting the platform.'
      operationId: AppManifest_GetManifest
      parameters:
      - name: appId
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/AppManifestResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/AppManifestResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/AppManifestResponse'
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/apps/manifest/invalidate:
    post:
      tags:
      - VirtoCommerce Platform
      summary: 'Force-invalidate the manifest cache for every `appId`. The next

        call to `GET /api/apps/{appId}/manifest` will rebuild the

        descriptor from disk, picking up any plugin changes since the last

        build (new module installs, drop-in plugin replacements, plugin

        rebuilds).


        In Development this isn''t normally needed (the service bypasses its

        cache anyway), but the endpoint works in any environment for

        operators who want to refresh without restarting the platform.'
      operationId: AppManifest_InvalidateManifestCache
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - platform:module:manage
      - api_key:
        - platform:module:manage
      - api_key_header:
        - platform:module:manage
      - http-signature:
        - platform:module:manage
      - basic:
        - platform:module:manage
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/platform/apps:
    get:
      tags:
      - VirtoCommerce Platform
      summary: Gets the list of available apps, filtered by user permissions.
      operationId: Apps_GetApps
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AppDescriptor'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AppDescriptor'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/AppDescriptor'
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /revoke/token:
    post:
      tags:
      - VirtoCommerce Platform
      operationId: Authorization_RevokeCurrentUserToken
      responses:
        '200':
          description: OK
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /connect/token:
    post:
      tags:
      - VirtoCommerce Platform
      operationId: Authorization_Exchange
      requestBody:
        content:
          application/x-www-form-urlencoded:
            schema:
              required:
              - grant_type
              type: object
              properties:
                grant_type:
                  type: string
                scope:
                  type: string
                username:
                  type: string
                password:
                  type: string
                storeId:
                  type: string
                user_id:
                  type: string
        required: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenIddictResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OpenIddictResponse'
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /connect/authorize:
    get:
      tags:
      - VirtoCommerce Platform
      operationId: Authorization_Authorize
      responses:
        '200':
          description: OK
      x-virtocommerce-module-id: VirtoCommerce.Platform
    post:
      tags:
      - VirtoCommerce Platform
      operationId: Authorization_Authorize
      responses:
        '200':
          description: OK
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /connect/userinfo:
    get:
      tags:
      - VirtoCommerce Platform
      operationId: Authorization_Userinfo
      responses:
        '200':
          description: OK
      x-virtocommerce-module-id: VirtoCommerce.Platform
    post:
      tags:
      - VirtoCommerce Platform
      operationId: Authorization_Userinfo
      responses:
        '200':
          description: OK
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /connect/logout:
    get:
      tags:
      - VirtoCommerce Platform
      operationId: Authorization_Logout
      responses:
        '200':
          description: OK
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/changes/force:
    post:
      tags:
      - VirtoCommerce Platform
      summary: Force set changes last modified date
      operationId: ChangeLog_ForceChanges
      parameters:
      - name: Scope
        in: query
        schema:
          type: string
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - cache:reset
      - api_key:
        - cache:reset
      - api_key_header:
        - cache:reset
      - http-signature:
        - cache:reset
      - basic:
        - cache:reset
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/platform-cache/reset:
    post:
      tags:
      - VirtoCommerce Platform
      operationId: ChangeLog_ResetPlatformCache
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - cache:reset
      - api_key:
        - cache:reset
      - api_key_header:
        - cache:reset
      - http-signature:
        - cache:reset
      - basic:
        - cache:reset
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/changes/lastmodifieddate:
    get:
      tags:
      - VirtoCommerce Platform
      summary: 'Get last modified date for given scope

        Used for signal of what something changed and for cache invalidation in external platform clients'
      operationId: ChangeLog_GetLastModifiedDate
      parameters:
      - name: scope
        in: query
        description: ''
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/LastModifiedResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/LastModifiedResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/LastModifiedResponse'
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/changes/changed-entities:
    post:
      tags:
      - VirtoCommerce Platform
      operationId: ChangeLog_GetChangedEntities
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ChangedEntitiesRequest'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ChangedEntitiesRequest'
          text/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ChangedEntitiesRequest'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ChangedEntitiesResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/ChangedEntitiesResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ChangedEntitiesResponse'
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/changes/changed-entities/reset:
    post:
      tags:
      - VirtoCommerce Platform
      operationId: ChangeLog_ResetChangedEntities
      requestBody:
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                type: string
          application/json:
            schema:
              type: array
              items:
                type: string
          text/json:
            schema:
              type: array
              items:
                type: string
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - cache:reset
      - api_key:
        - cache:reset
      - api_key_header:
        - cache:reset
      - http-signature:
        - cache:reset
      - basic:
        - cache:reset
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/platform/changelog/search:
    post:
      tags:
      - VirtoCommerce Platform
      operationId: ChangeLog_SearchChanges
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ChangeLogSearchCriteria'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ChangeLogSearchCriteria'
          text/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ChangeLogSearchCriteria'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OperationLog'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OperationLog'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OperationLog'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2: []
      - api_key: []
      - api_key_header: []
      - http-signature: []
      - basic: []
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/platform/changelog/v2/search:
    post:
      tags:
      - VirtoCommerce Platform
      operationId: ChangeLog_SearchChangesV2
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ChangeLogSearchCriteria'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ChangeLogSearchCriteria'
          text/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/ChangeLogSearchCriteria'
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/ChangeLogSearchResult'
            application/json:
              schema:
                $ref: '#/components/schemas/ChangeLogSearchResult'
            text/json:
              schema:
                $ref: '#/components/schemas/ChangeLogSearchResult'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2: []
      - api_key: []
      - api_key_header: []
      - http-signature: []
      - basic: []
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/platform/changelog/{type}/changes:
    get:
      tags:
      - VirtoCommerce Platform
      operationId: ChangeLog_SearchTypeChangeHistory
      parameters:
      - name: type
        in: path
        required: true
        schema:
          type: string
      - name: start
        in: query
        schema:
          type: string
          format: date-time
      - name: end
        in: query
        schema:
          type: string
          format: date-time
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OperationLog'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OperationLog'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/OperationLog'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2: []
      - api_key: []
      - api_key_header: []
      - http-signature: []
      - basic: []
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/platform/developer-tools:
    get:
      tags:
      - VirtoCommerce Platform
      operationId: DeveloperTools_GetDeveloperTools
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DeveloperToolDescriptor'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DeveloperToolDescriptor'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DeveloperToolDescriptor'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - platform:developer-tools:access
      - api_key:
        - platform:developer-tools:access
      - api_key_header:
        - platform:developer-tools:access
      - http-signature:
        - platform:developer-tools:access
      - basic:
        - platform:developer-tools:access
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/platform/diagnostics/systeminfo:
    get:
      tags:
      - VirtoCommerce Platform
      operationId: Diagnostics_GetSystemInfo
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                $ref: '#/components/schemas/SystemInfo'
            application/json:
              schema:
                $ref: '#/components/schemas/SystemInfo'
            text/json:
              schema:
                $ref: '#/components/schemas/SystemInfo'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2: []
      - api_key: []
      - api_key_header: []
      - http-signature: []
      - basic: []
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/platform/diagnostics/errors:
    get:
      tags:
      - VirtoCommerce Platform
      summary: Get installed modules with errors
      operationId: Diagnostics_GetModulesErrors
      responses:
        '200':
          description: OK
          content:
            text/plain:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ModuleDescriptor'
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ModuleDescriptor'
            text/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ModuleDescriptor'
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/platform/dynamic/types:
    get:
      tags:
      - VirtoCommerce Platform
      summary: Get object types which support dynamic properties
      operationId: DynamicProperties_GetObjectTypes
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  type: string
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - platform:dynamic_properties:read
      - api_key:
        - platform:dynamic_properties:read
      - api_key_header:
        - platform:dynamic_properties:read
      - http-signature:
        - platform:dynamic_properties:read
      - basic:
        - platform:dynamic_properties:read
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/platform/dynamic/properties:
    get:
      tags:
      - VirtoCommerce Platform
      operationId: DynamicProperties_GetAllDynamicProperties
      parameters:
      - name: id
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DynamicProperty'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - platform:dynamic_properties:read
      - api_key:
        - platform:dynamic_properties:read
      - api_key_header:
        - platform:dynamic_properties:read
      - http-signature:
        - platform:dynamic_properties:read
      - basic:
        - platform:dynamic_properties:read
      x-virtocommerce-module-id: VirtoCommerce.Platform
    post:
      tags:
      - VirtoCommerce Platform
      summary: Add new dynamic property
      operationId: DynamicProperties_CreatePropertyAsync
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/DynamicProperty'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/DynamicProperty'
          text/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/DynamicProperty'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DynamicProperty'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:create
      - api_key:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:create
      - api_key_header:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:create
      - http-signature:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:create
      - basic:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:create
      x-virtocommerce-module-id: VirtoCommerce.Platform
    put:
      tags:
      - VirtoCommerce Platform
      summary: Update existing dynamic property
      operationId: DynamicProperties_UpdatePropertyAsync
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/DynamicProperty'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/DynamicProperty'
          text/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/DynamicProperty'
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:update
      - api_key:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:update
      - api_key_header:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:update
      - http-signature:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:update
      - basic:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:update
      x-virtocommerce-module-id: VirtoCommerce.Platform
    delete:
      tags:
      - VirtoCommerce Platform
      summary: Delete dynamic property
      operationId: DynamicProperties_DeletePropertyAsync
      parameters:
      - name: propertyIds
        in: query
        schema:
          type: array
          items:
            type: string
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:delete
      - api_key:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:delete
      - api_key_header:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:delete
      - http-signature:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:delete
      - basic:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:delete
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/platform/dynamic/properties/search:
    post:
      tags:
      - VirtoCommerce Platform
      summary: Get dynamic properties registered for object type
      operationId: DynamicProperties_SearchDynamicProperties
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/DynamicPropertySearchCriteria'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/DynamicPropertySearchCriteria'
          text/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/DynamicPropertySearchCriteria'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DynamicPropertySearchResult'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - platform:dynamic_properties:read
      - api_key:
        - platform:dynamic_properties:read
      - api_key_header:
        - platform:dynamic_properties:read
      - http-signature:
        - platform:dynamic_properties:read
      - basic:
        - platform:dynamic_properties:read
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/platform/dynamic:
    post:
      tags:
      - VirtoCommerce Platform
      summary: Does nothing. Just a way to expose DynamicObjectProperty thru Swagger.
      operationId: DynamicProperties_ExposeDynamicObjectProperty
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DynamicObjectProperty'
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - platform:dynamic_properties:read
      - api_key:
        - platform:dynamic_properties:read
      - api_key_header:
        - platform:dynamic_properties:read
      - http-signature:
        - platform:dynamic_properties:read
      - basic:
        - platform:dynamic_properties:read
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/platform/dynamic/dictionaryitems:
    get:
      tags:
      - VirtoCommerce Platform
      operationId: DynamicProperties_GetAllDictionaryItems
      parameters:
      - name: propertyId
        in: query
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/DynamicPropertyDictionaryItem'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - platform:dynamic_properties:read
      - api_key:
        - platform:dynamic_properties:read
      - api_key_header:
        - platform:dynamic_properties:read
      - http-signature:
        - platform:dynamic_properties:read
      - basic:
        - platform:dynamic_properties:read
      x-virtocommerce-module-id: VirtoCommerce.Platform
    post:
      tags:
      - VirtoCommerce Platform
      summary: Add or update dictionary items
      description: Fill item ID to update existing item or leave it empty to create a new item.
      operationId: DynamicProperties_SaveDictionaryItemsAsync
      requestBody:
        content:
          application/json-patch+json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/DynamicPropertyDictionaryItem'
          application/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/DynamicPropertyDictionaryItem'
          text/json:
            schema:
              type: array
              items:
                $ref: '#/components/schemas/DynamicPropertyDictionaryItem'
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:update
      - api_key:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:update
      - api_key_header:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:update
      - http-signature:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:update
      - basic:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:update
      x-virtocommerce-module-id: VirtoCommerce.Platform
    delete:
      tags:
      - VirtoCommerce Platform
      summary: Delete dictionary items
      operationId: DynamicProperties_DeleteDictionaryItemAsync
      parameters:
      - name: ids
        in: query
        description: IDs of dictionary items to delete.
        schema:
          type: array
          items:
            type: string
      responses:
        '204':
          description: No Content
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:update
      - api_key:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:update
      - api_key_header:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:update
      - http-signature:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:update
      - basic:
        - platform:dynamic_properties:read
        - platform:dynamic_properties:update
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/platform/dynamic/dictionaryitems/search:
    post:
      tags:
      - VirtoCommerce Platform
      summary: Get dictionary items
      operationId: DynamicProperties_SearchDictionaryItems
      requestBody:
        content:
          application/json-patch+json:
            schema:
              allOf:
              - $ref: '#/components/schemas/DynamicPropertyDictionaryItemSearchCriteria'
          application/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/DynamicPropertyDictionaryItemSearchCriteria'
          text/json:
            schema:
              allOf:
              - $ref: '#/components/schemas/DynamicPropertyDictionaryItemSearchCriteria'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DynamicPropertyDictionaryItemSearchResult'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      security:
      - oauth2:
        - platform:dynamic_properties:read
      - api_key:
        - platform:dynamic_properties:read
      - api_key_header:
        - platform:dynamic_properties:read
      - http-signature:
        - platform:dynamic_properties:read
      - basic:
        - platform:dynamic_properties:read
      x-virtocommerce-module-id: VirtoCommerce.Platform
  /api/platform/jobs/{id}:
    get:
      tags:
      - VirtoC

# --- truncated at 32 KB (191 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/virto-commerce/refs/heads/main/openapi/virto-commerce-virtocommerce-platform-api-openapi.yml