Schemas
Product
idtitlenamedescriptionshort_descriptionskupriceEffective price (sale price when on sale, otherwise regular price).
regular_pricesale_priceprice_htmlHTML-formatted price string (may include <span> tags).
statusProduct publication status (e.g. publish, draft, private).
featuredTrue when the merchant has marked the product as featured.
on_saleTrue when a sale price is active.
permalinkCanonical product page URL.
image_urlProduct categories; each item is a WooCommerce term object.
Product tags; each item is a WooCommerce term object.
Product variation objects (variable products only).
date_createdProduct creation timestamp (used by get_featured_products new_arrivals sort).
date_modifiedcreated_atAlias for date_created (plugin may send either field).
updated_atAlias for date_modified (plugin may send either field).
InstallRequest
domainsystemwoocommerce — full catalogue with image + text data.
knowledge_base — text-only Confluence/article chunks for askagento.com chat.
plugin_versionwoocommerce_versiontotal_productsshop_ipOptional IPv4 string for the shop host (plugin may send DNS resolution result).
UpdateRequest
systemdomainplugin_versionwoocommerce_versiontotal_productsUpdateResponse
statussite_idsynced_productsupdate_neededTrue when the catalogue hash changed on this sync (re-embed required). Unchanged-hash syncs do not clear a previously true flag.
messageUninstallRequest
systemdomainplugin_versionwoocommerce_versionInstallAcceptedResponse
statussite_idNew site identifier; store with api_key for subsequent calls.
api_keyInstall-time secret; required on all routes except POST /install (new installs) and OPTIONS preflights.
messageInstallStatusResponse
site_idinstalled_atstatus_messagestatusRecommendationsPayload
site_idgenerated_atISO 8601 timestamp (UTC) with Z suffix
Map of source product id to cross-sell targets (similarity-ranked)
Map of source product id (string) to ranked neighbor list
RecommendationNeighbor
product_iddistanceHybrid score; lower is better when present
titleimage_urlsourcehybrid, image, or text
SearchRequest
queryText query (alias q)
qAlias for query
image_base64Base64 image; data URLs are accepted
modalityOmit for automatic modality: text if only query/q, image if only image_base64,
both if query and image are present. both requires query (≥2 chars) and image_base64.
limitSearchResponse
site_idmodalityqueryEchoed text query when modality is text or both
ChatMessage
rolecontentChatbotRequest
actionchat — full conversation; last user turn drives product retrieval (see POST /chatbot).
health — connectivity probe; messages optional and ignored; max_completion_tokens ignored.
Required when action=chat (non-empty after normalization); omitted or ignored for health. Up to 24 turns; each content truncated to 12 000 chars.
max_completion_tokensAlias max_tokens also accepted; capped at 4096. Ignored when action=health (server uses 3).
ChatbotResponse
site_idactionlatency_msRound-trip latency to the chat provider in milliseconds
replyText reply from the model
products_retrievedNumber of catalogue products injected as context for action=chat; always 0 for health
limits_tokens_remainingRemaining token quota for the site after this call; null if no quota is set
ChatbotErrorResponse
errorllm_statusHTTP status code returned by the upstream chat API
McpRequest
jsonrpcmethodOne of: initialize, notifications/initialized, tools/call, tools/list
Request id (omit for notifications)
For tools/call: {"name": "chat_with_shop"|"get_catalogue_stats"|"get_featured_products"|"get_product_by_id"|"get_shop_status"|"get_similar_products"|"list_categories"|"list_tags"|"search_products", "arguments": {...}}
PlanResponse
site_idplanPlan slug (e.g. starter, growth); null if no plan is set
plan_labelHuman-readable plan label
trialTrue while the site is on the install-time free trial of its plan
trial_ends_atISO-8601 UTC timestamp when the trial ends; null when not on a trial.
UsageResponse
site_idplanPlan slug; null if no plan is set
plan_labeltrialTrue while the site is on the install-time free trial of its plan
trial_ends_atISO-8601 UTC timestamp when the trial ends; null when not on a trial.
Current remaining limits for this site; null if no limits are tracked
Tier-level maximums for the current plan; null if no plan is set. Includes a products field (the plan's product cap) in addition to tokens/searches.
product_countNumber of products in the shop's catalogue; null if not yet recorded
max_productsMaximum products allowed on the current plan; null if no plan is set
over_product_limitTrue when the catalogue exceeds the plan's product cap. While true, AI features are blocked until the merchant upgrades or reduces the catalogue.
FilterRequest
actionfilter_actionAlias for action; supply either action or filter_action.
canonical_filtersAlias for canonical_attributes when generating attribute filters.
LabelRequest
modeactioncanonical_attributescanonical_categoriescanonical_tagsLabelFilterJsonResponse
site_idmodeaction