Skip to main content
Use the Developer Platform promotions endpoints to manage central promotions, product assignments, and marketplace sync. Semantics match the workspace Promotions UI (/app/{organizationId}/promotions).

Authentication

Send an OmniCommerce API key or OAuth client-credentials token:
OAuth clients must include the scope on the client. API keys created from organization settings receive all developer scopes by default. Session-authenticated calls must include organizationId in the query (GET) or JSON body (writes). OpenAPI reference: API reference · Spec: openapi.json

List promotions

Query parameters

Response

Each list item includes promotion fields plus:
  • effectiveStatus — status resolved from schedule windows
  • syncMeta — aggregated marketplace sync (lastSyncedAt, pending/failed/synced/skipped counts)

Create promotion

Request body

Returns 201 with { "promotion": { ... } }.

Get / update / delete

Update accepts partial fields (name, discountType, discountValue, storeKeys, schedule, status, guardrails).

Assign products

Assign does not push to marketplaces. It creates pending sync rows. Call sync after assign.
Lists current assignments.
Unassigns products and queues marketplace teardown.

Sync to marketplaces

Both fields are optional:
  • omit marketplace → all promotion marketplaces
  • omit productIds → all assigned products
Returns 202:

Marketplace mapping

Products only sync to marketplaces they are published on. Other target rows are marked skipped.

Example flow