Virto Commerce Marketing API

Marketing system with dynamic contents and promotions management

Business capability
Marketing Management BC-400

Operations 35

Each operation below carries the questions people ask an LLM about it and the instructions they give an agent to run it. Generated by API Evangelist overlay

POST /api/marketing/contentplaces/listentries/search Browse content place folders and entries · Search content places list entries by given criteria #
Ask an LLM
“Can I browse content placeholders together with the folders they sit in?”
“What is inside a given folder of dynamic content places?”
Tell an agent
List the folders and content places inside folder {folderId}.
Browse the content place tree for entries matching {keyword}.
POST /api/marketing/contentplaces/search Search dynamic content places · Search dynamic content places by given criteria #
Ask an LLM
“How do I find the placeholders on my storefront where dynamic content can show?”
“Can I search content places by keyword without the folders mixed in?”
Tell an agent
Search content places for {keyword}.
Find only the content places, not folders, in folder {folderId}.
POST /api/marketing/contentitems/listentries/search Browse content item folders and entries · Search content places list entries by given criteria #
Ask an LLM
“Can I browse dynamic content items along with the folders that organize them?”
“What content items and subfolders live in a given content folder?”
Tell an agent
List the folders and content items inside folder {folderId}.
Browse the content item tree for entries matching {keyword}.
POST /api/marketing/contentitems/search Search dynamic content items · Search dynamic content items by given criteria #
Ask an LLM
“How do I find banners or other dynamic content items by keyword?”
“Can I search only content items, leaving folders out of the results?”
Tell an agent
Search dynamic content items for {keyword}.
Find only the content items, not folders, in folder {folderId}.
POST /api/marketing/contentpublications/search Search content publications · Search dynamic content items by given criteria #
Ask an LLM
“Which content publications are currently active for my store?”
“Can I find the publications targeting a specific placeholder name?”
Tell an agent
List active content publications for store {store}.
Find publications that target the content place named {placeName}.
POST /api/marketing/contentitems/evaluate Resolve which content to show in a placeholder · Get dynamic content for given placeholders #
Ask an LLM
“What content should display in a storefront placeholder for this shopper right now?”
“Can dynamic content be targeted by the visitor's country or city?”
Tell an agent
Get the dynamic content to show in place {placeName} for store {storeId}.
Evaluate content for place {placeName} on product {productId}.
GET /api/marketing/contentitems/{id} Get a dynamic content item · Find dynamic content item object by id #
Ask an LLM
“What does a single dynamic content item, like a banner, contain?”
“Where do I read one content item by its ID?”
Tell an agent
Get dynamic content item {id}.
Show the banner content item {id}.
POST /api/marketing/contentitems Create a dynamic content item · Add new dynamic content item object to marketing system #
Ask an LLM
“How do I add a new banner or content block for the storefront?”
“Which content type do I pick when creating a new content item?”
Tell an agent
Create a content item {name} of type {contentType}.
Add a new content item {name} in folder {folderId}.
PUT /api/marketing/contentitems Update a dynamic content item · Update an existing dynamic content item object #
Ask an LLM
“How do I change the image or name of an existing content item?”
“Can I move an existing content item into another folder?”
Tell an agent
Update content item {name} with image {imageUrl}.
Move existing content item {name} to folder {folderId}.
DELETE /api/marketing/contentitems Delete dynamic content items · Delete a dynamic content item objects #
Ask an LLM
“How do I remove banners or content items I no longer use?”
“Can I delete several content items at once?”
Tell an agent destructive · confirm first
Delete content items {ids}.
Remove the dynamic content items with IDs {ids}.
GET /api/marketing/contentplaces/{id} Get a dynamic content place · Find dynamic content place object by id #
Ask an LLM
“What is defined for one storefront placeholder?”
“Where do I read a single content place by ID?”
Tell an agent
Get content place {id}.
Show the placeholder definition {id}.
POST /api/marketing/contentplaces Create a dynamic content place · Add new dynamic content place object to marketing system #
Ask an LLM
“How do I define a new placeholder slot where content can appear?”
“Can I put a new content place inside a folder?”
Tell an agent
Create a content place named {name}.
Add a new content place {name} in folder {folderId}.
PUT /api/marketing/contentplaces Update a dynamic content place · Update a existing dynamic content place object #
Ask an LLM
“How do I rename an existing storefront placeholder?”
“Can I change the description of a content place I already set up?”
Tell an agent
Rename content place {id} to {name}.
Update the description of content place {id} to {description}.
DELETE /api/marketing/contentplaces Delete dynamic content places · Delete a dynamic content place objects #
Ask an LLM
“How do I remove placeholders that are no longer on the storefront?”
“Can I delete several content places together?”
Tell an agent destructive · confirm first
Delete content places {ids}.
Remove the placeholder definitions {ids}.
GET /api/marketing/contentpublications/new Get a blank content publication template · Get new dynamic content publication object #
Ask an LLM
“Is there a pre-populated template to start a new content publication from?”
“What does an empty content publication with its default condition tree look like?”
Tell an agent
Get a new blank content publication template.
Give me the default skeleton for a content publication.
GET /api/marketing/contentpublications/{id} Get a content publication · Find dynamic content publication object by id #
Ask an LLM
“What items, places and dates are set on a given content publication?”
“Where do I read one publication by ID?”
Tell an agent
Get content publication {id}.
Show the schedule and targeting of publication {id}.
POST /api/marketing/contentpublications Create a content publication · Add new dynamic content publication object to marketing system #
Ask an LLM
“How do I schedule content items to appear in placeholders for a store?”
“Can a new publication be limited to a date range?”
Tell an agent
Create a publication {name} for store {storeId}.
Publish content items {contentItems} to places {contentPlaces} starting {startDate}.
PUT /api/marketing/contentpublications Update a content publication · Update an existing dynamic content publication object #
Ask an LLM
“How do I change when an existing publication starts or ends?”
“Can I deactivate a content publication without deleting it?”
Tell an agent
Change publication {name} to run from {startDate} to {endDate}.
Set existing publication {name} active flag to {isActive}.
DELETE /api/marketing/contentpublications Delete content publications · Delete a dynamic content publication objects #
Ask an LLM
“How do I remove content publications I no longer need?”
“Can I delete several publications in one go?”
Tell an agent destructive · confirm first
Delete content publications {ids}.
Remove the publications with IDs {ids}.
GET /api/marketing/contentfolders/{id} Get a dynamic content folder · Find dynamic content folder by id #
Ask an LLM
“What does a content folder record hold?”
“Where do I read a single content folder by ID?”
Tell an agent
Get content folder {id}.
Show the dynamic content folder {id}.
POST /api/marketing/contentfolders Create a dynamic content folder · Add new dynamic content folder #
Ask an LLM
“How do I create a folder to organize content items and places?”
“Can I nest a new content folder inside another?”
Tell an agent
Create a content folder named {name}.
Add a new content folder {name} inside {parentFolderId}.
PUT /api/marketing/contentfolders Update a dynamic content folder · Update an existing dynamic content folder #
Ask an LLM
“How do I rename an existing content folder?”
“Can I move a content folder under a different parent?”
Tell an agent
Rename content folder {id} to {name}.
Move existing content folder {id} under folder {parentFolderId}.
DELETE /api/marketing/contentfolders Delete dynamic content folders · Delete a dynamic content folders #
Ask an LLM
“How do I remove content folders I no longer use?”
“Can I delete several content folders at once?”
Tell an agent destructive · confirm first
Delete content folders {ids}.
Remove the dynamic content folders {ids}.
POST /api/marketing/promotions/search Search promotions · Search dynamic content places by given criteria #
Ask an LLM
“Which promotions are active in my store right now?”
“Can I list only the public promotions or those in a given status?”
Tell an agent
Search promotions for {keyword}.
List active promotions in store {store}.
POST /api/marketing/promotions/evaluate Calculate which promotions apply to a cart · Evaluate promotions #
Ask an LLM
“Which discounts would a shopper get for this cart total?”
“Can I check whether first-time-buyer promotions apply to a customer?”
Tell an agent
Evaluate promotions for customer {customerId} in store {storeId}.
Work out the promotion rewards for a cart total of {cartTotal} {currency}.
GET /api/marketing/promotions/{id} Get a promotion · Find promotion object by id #
Ask an LLM
“What conditions and rewards are set on one promotion?”
“Where do I read a single promotion by ID?”
Tell an agent
Get promotion {id}.
Show the rules of promotion {id}.
GET /api/marketing/promotions/new Get a blank promotion template · Get new dynamic promotion object #
Ask an LLM
“Is there a starter promotion with the expression tree already filled in?”
“What does an empty dynamic promotion look like before I configure it?”
Tell an agent
Get a new blank promotion template.
Give me the default skeleton for a dynamic promotion.
POST /api/marketing/promotions Create a promotion · Add new dynamic promotion object to marketing system #
Ask an LLM
“How do I set up a new discount campaign for my stores?”
“Can a new promotion be exclusive so it doesn't stack with others?”
Tell an agent
Create a promotion {name} for stores {storeIds}.
Create an exclusive promotion {name} starting {startDate}.
PUT /api/marketing/promotions Update a promotion · Update an existing dynamic promotion object in marketing system #
Ask an LLM
“How do I change the usage limit on an existing promotion?”
“Can I switch an existing promotion off without deleting it?”
Tell an agent
Change existing promotion {name} to allow at most {maxUsageCount} uses.
Set existing promotion {name} active flag to {isActive}.
DELETE /api/marketing/promotions Delete promotions · Delete promotions objects #
Ask an LLM
“How do I permanently remove old promotions?”
“Can I delete several promotions at once?”
Tell an agent destructive · confirm first
Delete promotions {ids}.
Remove the promotions with IDs {ids}.
POST /api/marketing/promotions/coupons/search Search coupon codes · Marketing module promotion search coupons #
Ask an LLM
“Which coupon codes belong to a given promotion?”
“Can I look up whether a specific coupon code exists?”
Tell an agent
List coupons for promotion {promotionId}.
Find the coupon with code {code}.
GET /api/marketing/promotions/coupons/{id} Get a coupon by ID · Marketing module promotion get coupon #
Ask an LLM
“What details are stored for one coupon record?”
“Where do I read a single coupon by its ID?”
Tell an agent
Get coupon {id}.
Show the coupon record {id}.
POST /api/marketing/promotions/coupons/add Add coupons to promotions · Marketing module promotion add coupons #
Ask an LLM
“How do I attach a set of new coupon codes to a promotion?”
“Can I add many coupons in one request?”
Tell an agent
Add these coupon codes.
Save this list of new coupons for my promotion.
DELETE /api/marketing/promotions/coupons/delete Delete coupons · Marketing module promotion delete coupons #
Ask an LLM
“How do I remove coupon codes I issued by mistake?”
“Can several coupons be deleted together?”
Tell an agent destructive · confirm first
Delete coupons {ids}.
Remove the coupon records {ids}.
POST /api/marketing/promotions/coupons/import Import coupons from a file · Marketing module promotion import coupons async #
Ask an LLM
“Can I bulk load coupon codes from a CSV file?”
“Is it possible to set an expiration date on coupons during an import?”
Tell an agent
Import coupons from {fileUrl} into promotion {promotionId}.
Import coupons from {fileUrl} using delimiter {delimiter}, expiring on {expirationDate}.

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:virto-commerce-marketing-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-marketing-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: VirtoCommerce. Marketing API
  version: v1
  description: Marketing system with dynamic contents and promotions management
tags:


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