Skip to main content

List Cross-sells

List cross-sells on an owner product, including inactive ones. The envelope is { items, pagination }. Array order is display order — see Display order. Incomplete items are omitted — see Incomplete items.

Default per_page is 25. A page past the last page returns empty items and the requested current_page.

Request

Live:

  • GET /products/{productId}/cross-sells

Draft (same item shape; overlay collection):

  • GET /products/{productId}/draft/cross-sells

There is no live nested GET /products/{productId}/cross-sells/{id} — use Get Cross-sell (GET /cross-sells/{id}). Draft get is nested.

Path Parameters

ParameterTypeRequiredDescription
productIdstringYesOwner product UUID.

Query Parameters

ParameterTypeRequiredDefaultDescription
pageintegerNo1Page number.
per_pageintegerNo25Items per page (min 1, max 100).

Example Request

curl -X GET "https://cart.easy.tools/api/v1/products/0632bef5-c308-42cd-9cba-89a7a4f722bb/cross-sells" \
-H "Authorization: Bearer YOUR_API_TOKEN"

Response

Success Response (200)

{
"items": [
{
"id": "37643a70-be0f-4f09-ae36-c36e3ddb35dc",
"product_id": "70dbd819-fac2-4dcf-b655-fb925e24410b",
"variant_id": "5272bfcf-4e92-458d-b513-80ca474a16e4",
"parent_id": null,
"title": "Add the workbook",
"main_description": null,
"description": null,
"button_text": "Yes, add it",
"amount": 4900,
"currency": "usd",
"discount": null,
"validity_minutes": 15,
"one_purchase": true,
"send_offer": true,
"active": true
},
{
"id": "c1d8e4a6-7b29-4f53-a810-6e9c2d5f1b70",
"product_id": "70dbd819-fac2-4dcf-b655-fb925e24410b",
"variant_id": "d91c65aa-b221-4aa4-b626-cf0d8a198749",
"parent_id": "37643a70-be0f-4f09-ae36-c36e3ddb35dc",
"title": "Or start with the checklist",
"main_description": null,
"description": null,
"button_text": null,
"amount": 1900,
"currency": "usd",
"discount": null,
"validity_minutes": 15,
"one_purchase": true,
"send_offer": true,
"active": true
}
],
"pagination": {
"current_page": 1,
"total_pages": 1,
"per_page": 25,
"total": 2
}
}

See Cross-sell Object.

Pagination Object

FieldTypeDescription
current_pageintegerRequested page.
total_pagesintegerTotal pages (at least 1).
per_pageintegerPage size.
totalintegerTotal complete cross-sells on this owner.

Error Responses

Bad Request (400)

{
"message": "Invalid product ID"
}

Returned when the path UUID is malformed.

Not Found Error (404)

{
"message": "Product with ID 0632bef5-c308-42cd-9cba-89a7a4f722bb not found"
}

Unauthorized Error (401)

{
"message": "Unauthenticated."
}

Forbidden Error (403)

{
"message": "You do not have API access to the requested store."
}