Prerequisites
- An OmniCommerce organization
- An API key from organization settings (
omni_sk_...) - Base URL
https://omnicommerce.sg(or your local/dev host)
Authenticate
organizationId for API-key requests.
Session-authenticated browser calls must include organizationId in the query or body.
Full details: Authentication.
Core workflow
1. Create or upsert a product
product.images accepts only an array of HTTP(S) URL strings. workflow.enrich, workflow.autoAssignMarketplaceTaxonomy, and workflow.aco all default to false, including when workflow is omitted. Product creation does not start ACO generation unless workflow.aco is true.
To enrich the product and assign marketplace categories, brands, and attributes automatically, send both switches as true:
GET /api/v1/marketplaces/connected, then copy storeId from the matching entry in connectedMarketplaces into product.marketplaces.<platform>.storeId.
Marketplace and country targets can also be inferred from product.marketplaces when the top-level target arrays are omitted. Each platform stores one store and country assignment on the product: its product.marketplaces country takes precedence, otherwise the first target country is used.
Both product.marketplaces.<platform>.country and targetCountries[] use the ISO 3166-1 alpha-2 country-code enum, for example sg, my, or us. Codes are trimmed and normalized to lowercase. Country names such as Singapore, custom values, and global return HTTP 400. Country is not inferred from storeId.
This runs asynchronously without human approval prompts. Omni saves the enriched product draft and resolved marketplace taxonomy together. On SKU upserts, existing assigned categories, brands, and attributes are preserved; automatic assignment fills missing values. The taxonomy switch takes effect during enrichment, so enable both switches for automatic assignment.
Low-confidence matches are applied with warnings. If no category match is found or required attributes are missing, the draft is still saved and the job reports warnings. Review result.warnings and proposal.marketplaces from the job status response before publishing. Product creation does not publish the listing to the marketplace.
2. Poll async jobs
Many write paths return a job ID. Poll:workflow.aco is true. When that job is queued, poll result.geoJobId using the same job status endpoint. An existing active ACO job can be reused. To queue ACO with enrichment, send:
workflow.enableMannequinRemoval: true can queue additional image-processing jobs. The product workflow reports their IDs in result.imageProcessing.ghostMannequinQueuedJobIds.
Cancel with:
3. Publish, delist, and sync
GET /api/v1/products/{productId}/listings. Each marketplace shows whether the listing is live, its buyer-facing URL, and the latest publish attempt with any rejection details from the marketplace.
Delist removes marketplace listings. It does not delete the OmniCommerce product. Omit marketplaces to delist every channel that already has a listing, or name a subset. Shopee, Lazada, TikTok Shop, Shopify, WhatsApp, Zalora, Amazon, and eBay use the same endpoint. A named marketplace with no listing is rejected. The response jobId is polled with GET /api/v1/jobs/{jobId} until data.status is succeeded, partial, or failed. 202 means the job was queued.
API products
MCP tools
Public catalog discovery tools for tool-calling agents:omni_search_catalogomni_match_intentomni_discover_geo
TypeScript SDK
Python SDK
CLI
yarn omni evaluate --product-id PRODUCT_ID remains for local developer-platform scripts.
Next steps
Interactive API reference
Try endpoints with the Mintlify playground.
Orders guide
Filters, agentic create, and pricing fields.
MCP reference
JSON-RPC methods and tool contracts.
Authentication
Scopes, OAuth, and session rules.
Webhooks
Subscribe to product, order, return, settlement, and look events.
AOP API
Execute saved operating procedures and poll thread status.