Core concepts
Products, listings, channels, orders and operations — how Nembol models multichannel selling.
Five objects explain the whole API.
Product
The central catalog item, owned by Nembol. Has variants[] (SKU, price,
quantity, options) and images[]. Prices are decimal strings in the store's
base currency (GET /store → currency). A product can exist locally
without being on any channel — including without images (it stays a local
draft until published).
Listing
The projection of a product on one channel. Lives in the product's
listings[]: channel, status (listed, imported, ongoing, error,
delisted), id_on_channel, url_on_channel, last error if any. You
publish/delist per channel:
POST /v1/products/{id}/listings/{channel}/publish
POST /v1/products/{id}/listings/{channel}/delistChannel
A connected sales platform (shopify, amazon, ebay, etsy,
woocommerce, tiktok, …). GET /channels tells you what the store has
connected. Channel identifiers are stable strings — new ones appear as Nembol
adds integrations, so tolerate unknown values.
Order
A normalized order line ingested from any channel, with per-order currency,
normalized status, line items and buyer info (behind the orders:read
scope). Read-only in v1.
Operation
The tracker for asynchronous channel work. The key thing to understand about Nembol writes:
- The local write is synchronous.
POST/PATCHreturn the updated resource immediately — what you wrote is what you get back. - Channel propagation is asynchronous. It runs through Nembol's channel
workers, which respect each channel's own rate limits. The response's
syncblock gives you anoperation_id;GET /operations/{id}reports per-channelresults[](succeeded,failed,channel_rate_limited,simulated), and an operation can endpartial.
Instead of polling operations, subscribe to the
operation.completed webhook.
How sync behaves
- Writes from the API are queued behind order-driven updates and dashboard actions — an integration can never starve order sync.
- When a channel throttles, Nembol backs off and retries; the operation shows
channel_rate_limitedin the meantime. - Deleting a product delists it everywhere first, then soft-deletes locally. Irreversible.
Last updated on July 28, 2026
Need help?
The API is in private beta — email us and a human replies, usually within one business day.