overlay: 1.0.0
info:
title: API Evangelist enhancements — VirtoCommerce.Cart Catalog Marketing API
version: 1.0.0
extends: virto-commerce-marketing-api-openapi.yml
x-generated: '2026-08-13'
x-method: generated
x-source: openapi/virto-commerce-marketing-api-openapi.yml + well-known/virto-commerce-openid-configuration.json
+ conventions/virto-commerce-conventions.yml
actions:
- target: $.info
description: Record the publisher and the point of contact the platform document itself carries.
update:
contact:
name: Virto Commerce
url: https://virtocommerce.com
email: support@virtocommerce.com
- target: $
description: Virto Commerce is self-hosted, so the server is templated on the operator platform host.
The default is Virto's own public reference deployment, the host it links from its published llms.txt.
update:
servers:
- url: https://{platformHost}
description: Virto Commerce Platform instance (operator-hosted)
variables:
platformHost:
default: virtostart-demo-admin.govirto.com
description: Host of the Virto Commerce Platform deployment being called.
- target: $.info
description: Cross-link the derived runtime-semantics artifacts so a consumer of this spec can find
the conventions, error semantics and lifecycle facts the spec itself does not carry.
update:
x-api-evangelist:
conventions: conventions/virto-commerce-conventions.yml
errors: errors/virto-commerce-problem-types.yml
authentication: authentication/virto-commerce-authentication.yml
lifecycle: lifecycle/virto-commerce-lifecycle.yml
data-model: data-model/virto-commerce-data-model.yml
rate-limits: rate-limits/virto-commerce-rate-limits.yml
- target: $.info
description: 'State the runtime facts the generated spec omits: no idempotency mechanism, no rate-limit
headers, offset paging via skip/take in a POST search body, and empty 4xx bodies.'
update:
x-runtime-semantics:
idempotency: none — no idempotency key on any operation; retries of POST can duplicate
pagination: offset — skip/take/sort inside a *SearchCriteria POST body; response envelope {totalCount,
results[]}
rate_limit_headers: none declared or observed; throttling is operator-configured at the gateway
error_bodies: 401 and 403 return empty bodies; only POST /connect/token has a named error schema
(OpenIddictResponse)
content_negotiation: 'send Accept: application/json explicitly — text/plain and text/json are also
advertised'
- target: $.tags[?(@.name=='Marketing')]
description: Confirm the tag description carried from the platform module document.
update:
x-module: VirtoCommerce.Marketing
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
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.