2026
October — File uploads
- Added
POST /api/v1/documentsto upload a file to the knowledge base as multipart/form-data, andGET /api/v1/documents/{documentId}to read it and its indexing status. New OAuth scope:documents:write. Guide: Knowledge base uploads - Added
POST /api/v1/products/{productId}/imagesto upload an image file into a product’s or variant’s gallery. Guide: Product image uploads - SDK multipart methods (
documents.upload,products.uploadImage) accept aFileorBlob; the CLI takes--file <path>
October — Retry promotion delivery
- Breaking:
POST /api/v1/promotions/{promotionId}/syncis nowPOST /api/v1/promotions/{promotionId}/retry, with the same body and response. The SDK methodpromotions.syncis nowpromotions.retry - Promotions are delivered automatically when created or activated, edited while live, or given products, and removed when paused, ended, or archived. Use retry only after a failed delivery. Guide: Promotions
October — One analytics route per dashboard
- Added
GET /api/v1/analytics/overview,traffic,products,pricing,ads,orders,content,profit,ai-traffic,stores, andreports, one for each workspace analytics dashboard. All useanalytics:read;profitalso needs finance access for session members. Guide: Analytics - Breaking:
GET /api/v1/analytics/salesis nowGET /api/v1/analytics/orderswith the same response. The SDK methodanalytics.getSalesis nowanalytics.getOrders
October — Removed the API root endpoints
- Removed
GET /apiandGET /api/v1. They only returned{ ok, resource, service }. The SDK methodsclient.api.root()andclient.api.v1()and their CLI commands go with them in the next SDK release
October — Reviews, sales analytics, order actions, listings, and variants
- Added
GET /api/v1/reviews,GET /api/v1/reviews/{reviewId},POST /api/v1/reviews/actions(reply or request an Amazon review), andPOST /api/v1/reviews/{reviewId}/draft-reply. Buyer names are omitted. Guide: Reviews - Added
GET /api/v1/analytics/salesfor sales KPIs, a daily trend, channel and status mix, and top products. Guide: Analytics - Added
GET /api/v1/orders/{orderId}/action-options,POST /api/v1/orders/{orderId}/actions, andGET /api/v1/orders/{orderId}/actionsto ship, cancel, generate shipping labels, and update tracking. Guide: Order fulfillment - Added
GET /api/v1/products/{productId}/listingsfor each marketplace listing’s state, URL, and latest publish attempt, including rejection details GET /api/v1/products/{productId}now returns the product’s variants invariants- New OAuth scopes:
reviews:read,reviews:write,analytics:read - Breaking:
GET /api/v1/productsrows no longer includehasVariants. UsevariantCount, which is above 0 when a product has variants
October — Omni agent API
- Added
POST /api/v1/agents/general/invoketo wait for the general Omni agent - Added
POST /api/v1/agents/general/runsandGET /api/v1/agents/general/runs/{runId}to start a run and poll it. Starting returns202with the queued run, aLocationheader, andRetry-After - New OAuth scope:
agents:invoke - The latest user message accepts
{ "type": "image", "url" }parts for uploaded HTTP(S) images - Guide: Omni agent API
October — Campaigns API
- Added list, read, create, and revise endpoints under
/api/v1/campaigns - Added plan actions, archive/restore, and permanent delete for archived campaigns
- Added
GET /api/v1/campaigns/optionsfor the members and connected stores a plan can name - Uses
promotions:readandpromotions:write, the same permissions as the workspace Campaigns pages - Guide: Campaigns
September — Product delisted webhook
- Added
product.delisted - Emitted after a marketplace delist is saved, including
POST /api/v1/products/{productId}/delist changedFieldsnames each removed channel, such asmarketplaces.shopee- The OmniCommerce product is not deleted
September — Delist a product
- Added
POST /api/v1/products/{productId}/delist - Uses the same
catalog:syncscope as publish - Omitting
marketplacesdelists every existing listing. Naming marketplaces limits the delist; each named marketplace must already have a listing - Covers Shopee, Lazada, TikTok Shop, Shopify, WhatsApp, Zalora, Amazon, and eBay
- Returns
202with ajobIdto poll atGET /api/v1/jobs/{jobId} - Does not delete the OmniCommerce product
September — Exact product SKU list filter
GET /api/v1/productsacceptsskufor exact catalog SKU equality (trimmed). This is not the fuzzyqname/SKU search. Repeatskuor comma-separate up to 50 values.
September — Catalog cost API
- Added
POST /api/v1/products/cost(1–200 updates) andPATCH /api/v1/products/{productId}/cost - Cost is Omni-only: source amount and currency are stored on the product; the amount is not converted to the selling currency
- When cost currency differs from selling currency and
costPriceFxRateis omitted, Omni quotes FX and stores the rate on the product - Documented listing by marketplace (
GET /api/v1/products) then batch cost write in Catalog updates
September — Public AOP API
- Added public AOP REST endpoints under
/api/v1/aop/* POST /api/v1/aop/{aopId}/executestarts a run and returnsthread_idGET /api/v1/threads/{thread_id}/statuspolls execution- JSON responses use
aop_id - Added create, config read/overwrite, and retry
- New OAuth scopes:
aops:read,aops:write
August — Catalog export and commerce outcome APIs
- Added a cursor-paged JSON catalog export and optional CSV intake shape
- Added PII-free SKU-level order outcomes and product pricing guardrail fields
- Added versioned return webhooks plus return list/detail APIs
- Added settlement list/detail APIs for normalized finance reconciliation
- Added an immutable webhook-event pull API for missed-delivery recovery
- Documented the complete bootstrap, webhook, price/inventory write, job, and reconciliation flow
August — Versioned catalog price and inventory updates
- Added dedicated
PATCH /api/v1/products/{productId}/priceandPATCH /api/v1/products/{productId}/inventoryendpoints for products and variants - Added credential-derived organization scope, exact marketplace-account targets, durable sync jobs, and pollable per-target status
- Connected local changes to
product.price.changedandproduct.inventory.changedwebhooks
August — Unified settlement webhooks
- Added
settlement.created,settlement.updated, andsettlement.status.changedas first-class subscription events - Normalized marketplace fees, seller net, variance, evidence status, and payout references independently from order lifecycle updates
- Added versioned, currency-safe snapshots with duplicate suppression across marketplace finance retries
- Documented the settlement lifecycle and added API Reference pages for all three events
August — Unified order webhooks
- Added the provider-neutral
2026-08-01order webhook contract - Standardized order lifecycle events across Shopee, Lazada, TikTok Shop, Shopify, Zalora, Amazon, and developer-created orders
- Added complete PII-free snapshots, canonical statuses, exact account provenance, decimal-string money, and per-order resource versions
- Documented subscription setup, signing, retries, idempotency, and marketplace mapping
- Added first-class API Reference sections for every supported product, order, and look webhook operation, plus an availability catalog for planned resources
August — Public docs on Mintlify
- Migrated developer docs to Mintlify with interactive OpenAPI playground
- Documentation, API Reference, and Changelog tabs (Exa-style layout)
- Guides for orders, promotions, price books, bulk import, and ghost mannequin
- MCP reference for public catalog tools