Skip to content

The product’s listing on one store, for the listing editor

GET
/api/v1/workspaces/{workspaceId}/products/{productId}/channels/{connectionId}/listing
curl --request GET \
--url https://api.crossmart.io/api/v1/workspaces/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/products/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/channels/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/listing \
--header 'x-api-key: <x-api-key>'

Every field (title, description, tags, images, visibility, and each variant’s price and compare-at price) with the product’s value, the store’s override (null when it follows the product) and the value the store gets, plus the stock limits, category, a summary of the item specifics and the display state. Revert one field with PATCH …/override.

workspaceId
required
string format: uuid
productId
required
string format: uuid
connectionId
required
string format: uuid
Media typeapplication/json
object
productId
required
string format: uuid
connection
required
object
id
required
string format: uuid
channel
required
string
Allowed values: shopify ebay google_merchant etsy amazon walmart
displayName
required
string
status
required
string
Allowed values: CONNECTED NEEDS_REAUTH DISCONNECTED ERROR
currencyCode
required
string
selected
required

Whether the connection’s product selection includes it

boolean
displayState
required

The product on this store, in one state computed by the server: draft (not selected for the store), needs_details (selected, but the store setup or the product lacks something publishing needs), ready (publishable, not sent yet), publishing (queued or in flight, including an update of a published listing that a sync or retry queued), published, failed, removing (being taken off) or removed.

string
Allowed values: draft needs_details ready publishing published failed removing removed
displayReason
required

For needs_details and failed: a short, merchant-readable reason (what to add, or the channel’s message). Never holds secrets. Null for the other states.

string
nullable
displayRequirement
required

For needs_details: the requirement to fix first, so a client can open the right place. Store-setup requirements (reconnect, account_settings, shipping_policy, payment_policy, return_policy, ship_from_location, listing_setup) come before the product’s (images, active_product, option_names), which the server checks before publishing; category and item_specifics are known once the channel refused a publish. Null for the other states.

string
Allowed values: reconnect account_settings shipping_policy payment_policy return_policy ship_from_location listing_setup item_details shipping_profile processing_profile images active_product category item_specifics option_names
listing
required
object
id
required
string format: uuid
status
required
string
Allowed values: PENDING ACTIVE INACTIVE ERROR DELISTED
source
required

How the product joined the store: by hand, by an import, or by the automatic rule

string
Allowed values: MANUAL IMPORT RULE
externalId
required

The product’s id on the channel

string
nullable
externalUrl
required

Where to see it on the channel

string
nullable
lastError
required

Why the last sync failed

string
nullable
missingRequirement
required

What the channel refused the last publish for lacking (such as item_specifics), when the merchant can add it; null otherwise

string
Allowed values: reconnect account_settings shipping_policy payment_policy return_policy ship_from_location listing_setup item_details shipping_profile processing_profile images active_product category item_specifics option_names
lastSyncedAt
required
string format: date-time
nullable
syncRequestedAt
required

When a sync or retry queued its publish, update or delist; null once that job finished or gave up. While set, a selected listing shows displayState: publishing.

string format: date-time
nullable
category
required

The channel category it is listed in, on channels with categories (eBay)

object
id
required
string
name
required

The category with its ancestors, as the channel shows it

string
title
required
object
product
required

The product’s value

string
override
required

Null when it follows the product

string
nullable
effective
required

What the store gets

string
overridden
required

Whether the store overrides it; reverting sets override to null

boolean
descriptionHtml
required
object
product
required

The product’s value

string
override
required

Null when it follows the product

string
nullable
effective
required

What the store gets

string
overridden
required

Whether the store overrides it; reverting sets override to null

boolean
vendor
required

The brand the store shows

object
product
required

The product’s value

string
nullable
override
required

Null when it follows the product

string
nullable
effective
required

What the store gets

string
nullable
overridden
required

Whether the store overrides it; reverting sets override to null

boolean
tags
required
object
product
required
Array<string>
override
required

Null when it follows the product

Array<string>
nullable
effective
required
Array<string>
overridden
required

Whether the store overrides it; reverting sets override to null

boolean
images
required

Image URLs in order; an override is a subset of the product’s, in its order

object
product
required
Array<string>
override
required

Null when it follows the product

Array<string>
nullable
effective
required
Array<string>
overridden
required

Whether the store overrides it; reverting sets override to null

boolean
visibility
required
object
product
required

VISIBLE when the product is active, else HIDDEN

string
Allowed values: VISIBLE HIDDEN
override
required
string
Allowed values: VISIBLE HIDDEN
effective
required
string
Allowed values: VISIBLE HIDDEN
overridden
required

Whether the store overrides it; reverting sets override to null

boolean
stock
required
object
inventoryBuffer
required

Units held back from this store

number
nullable
maxQuantity
required

The most units this store shows

number
nullable
variants
required
Array<object>
object
variantId
required
string format: uuid
title
required
string
sku
required
string
nullable
price
required
object
product
required

The catalog price, in the workspace currency

string
override
required
string
nullable
effective
required

In the store’s currency: the override, else the pricing rule’s result

string
overridden
required

Whether the store overrides it; reverting sets override to null

boolean
rulePrice
required

In the store’s currency: what its pricing rule gives, before a fixed price on the listing. Equal to the effective price unless the price is overridden.

string
compareAtPrice
required
object
product
required

In the workspace currency

string
nullable
override
required
string
nullable
effective
required

In the store’s currency

string
nullable
overridden
required

Whether the store overrides it; reverting sets override to null

boolean
resolvedPrice
required

How the effective price was reached

object
price
required
string
compareAtPrice
required
string
nullable
source
required
string
Allowed values: override rule base
steps
required
Array<object>
object
kind
required
string
Allowed values: base conversion percent fixed_amount rounding floor override
label
required
string
amount
required

The price after this step

string
explanation
required
string
warnings
required
Array<string>
Allowed values: missing_cost below_floor compare_at_dropped clamped_to_zero no_exchange_rate
unitCost
required

The variant cost in the channel currency, converted like the price

string
nullable
quantity
required

The stock the store shows; null when the variant does not track stock

number
nullable
category
required
object
supported
required

Whether the channel has categories (eBay)

boolean
value
required

Null until the merchant chose one or a publish picked one

object
id
required
string
name
required

The category with its ancestors, as the channel shows it

string
itemSpecifics
required
object
supported
required

Whether the channel has item specifics (eBay)

boolean
count
required

How many item specifics the merchant set on the listing

number
names
required
Array<string>
overrideUpdatedAt
required

When the overrides last changed; null when there are none

string format: date-time
nullable

Example

{
"connection": {
"channel": "shopify",
"status": "CONNECTED",
"currencyCode": "USD"
},
"displayState": "draft",
"displayReason": "Choose a shipping policy in this eBay connection’s listing defaults.",
"displayRequirement": "reconnect",
"listing": {
"status": "PENDING",
"source": "MANUAL",
"missingRequirement": "reconnect",
"category": {
"id": "20625",
"name": "Home & Garden > Kitchen, Dining & Bar > Dinnerware & Serving Dishes > Mugs"
}
},
"visibility": {
"product": "VISIBLE",
"override": "VISIBLE",
"effective": "VISIBLE"
},
"variants": [
{
"title": "Blue / Large",
"price": {
"product": "89.00",
"override": "79.00",
"effective": "102.99"
},
"rulePrice": "102.99",
"resolvedPrice": {
"price": "102.99",
"source": "override",
"steps": [
{
"kind": "base",
"label": "+15%",
"amount": "102.35"
}
],
"explanation": "$89.00 → +15% → .99 = $102.99",
"warnings": [
"missing_cost"
]
}
}
],
"category": {
"value": {
"id": "20625",
"name": "Home & Garden > Kitchen, Dining & Bar > Dinnerware & Serving Dishes > Mugs"
}
},
"itemSpecifics": {
"names": [
"Brand",
"Color"
]
}
}

The product or the store is not in the workspace