Skip to content

The store’s products with their state on the channel

GET
/api/v1/workspaces/{workspaceId}/channel-connections/{connectionId}/products
curl --request GET \
--url 'https://api.crossmart.io/api/v1/workspaces/example/channel-connections/example/products?state=listed&sort=title&direction=asc&limit=25'

Products the store should have or still has: listed, pending (being published), failed or removing (being delisted). Pass state=excluded for the catalog products it does not have. Counts per state follow search, so they can label filter tabs.

workspaceId
required
string
connectionId
required
string
state
string
Allowed values: listed pending failed removing removed_by_hand excluded
search
string

Matches title, handle or SKU

sort
string
Allowed values: title updatedAt
direction
string
Allowed values: asc desc
cursor
string format: uuid
page
number
>= 1

1-based page number, for tables with page numbers. It wins over cursor.

limit
number
default: 25 >= 1 <= 100
Media typeapplication/json
object
items
required
Array<object>
object
product
required
object
id
required
string format: uuid
handle
required
string
title
required
string
status
required
string
Allowed values: DRAFT ACTIVE ARCHIVED
vendor
required
string
nullable
productType
required
string
nullable
variantCount
required
number
totalAvailable
required

Stock across variants that track it; null when none do

number
nullable
priceRange
required
object
min
required

Decimal string in the workspace currency

string
max
required
string
imageUrl
required
string
nullable
stores
required

The stores it is in, in the order it joined them

Array<object>
object
connectionId
required
string format: uuid
channel
required
string
Allowed values: shopify ebay google_merchant etsy amazon walmart
storeName
required
string
status
required
string
Allowed values: PENDING ACTIVE INACTIVE ERROR DELISTED
source
required
string
Allowed values: MANUAL IMPORT RULE
updatedAt
required
string format: date-time
state
required
string
Allowed values: listed pending failed removing removed_by_hand excluded
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), 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
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 images active_product category item_specifics option_names
lastSyncedAt
required
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
counts
required
object
listed
required

Selected and on the channel

number
pending
required

Selected, waiting for the next sync to publish them

number
failed
required

Their last sync failed

number
removing
required

On the channel but no longer selected; the next sync delists them

number
removed_by_hand
required

Removed by hand and off the channel; adding them back undoes it

number
excluded
required

Neither selected nor on the channel

number
nextCursor
required
string
nullable
total
required

How many match in all, for page numbers

number

Example

{
"items": [
{
"product": {
"status": "DRAFT",
"priceRange": {
"min": "22.00",
"max": "89.00"
},
"stores": [
{
"channel": "shopify",
"storeName": "Demo Store",
"status": "PENDING",
"source": "MANUAL"
}
]
},
"state": "listed",
"displayState": "draft",
"displayReason": "Choose a shipping policy in this eBay connection’s listing defaults.",
"listing": {
"status": "PENDING",
"source": "MANUAL",
"missingRequirement": "reconnect",
"category": {
"id": "20625",
"name": "Home & Garden > Kitchen, Dining & Bar > Dinnerware & Serving Dishes > Mugs"
}
}
}
]
}