live · Commerce · JSON · API for agents
Fetch a single product (listing) by its slug for the current market and channel. Returns title, price, SKUs, and primary media.
{
"name": "get_product",
"kind": "read",
"impl": "imperative",
"description": "Fetch a single product (listing) by its slug for the current market and channel. Returns title, price, SKUs, and primary media.",
"inputSchema": {
"type": "object",
"properties": {
"listingSlug": {
"type": "string",
"description": "Listing slug (URL segment) for the product"
}
},
"required": [
"listingSlug"
],
"additionalProperties": false
},
"page": "/"
}List the products available in the current channel and market — title, slug, price for each listing.
{
"name": "list_products_in_channel",
"kind": "read",
"impl": "imperative",
"description": "List the products available in the current channel and market — title, slug, price for each listing.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}Read the current shopping cart: items, quantities, subtotal, grand total, and currency. Read-only.
{
"name": "view_cart",
"kind": "read",
"impl": "imperative",
"description": "Read the current shopping cart: items, quantities, subtotal, grand total, and currency. Read-only.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}Add the product the shopper is currently viewing to the cart, using the size/colour already selected on the page. Requires an open product page. If none is open, the result includes an `openUrl` for the product page — navigate there, then call this again. Programmatic add by product id is not yet supported.
{
"name": "add_to_cart",
"kind": "write",
"impl": "imperative",
"description": "Add the product the shopper is currently viewing to the cart, using the size/colour already selected on the page. Requires an open product page. If none is open, the result includes an `openUrl` for the product page — navigate there, then call this again. Programmatic add by product id is not yet supported.",
"inputSchema": {
"type": "object",
"properties": {
"productId": {
"type": "string",
"description": "Product slug. Used only for the deep link when no product page is open; ignored for the contextual add."
},
"quantity": {
"type": "integer",
"description": "Quantity (default 1, max 10)",
"minimum": 1,
"maximum": 10
}
},
"additionalProperties": false
},
"page": "/"
}Remove an item from the cart. Use the item id returned by view_cart.
{
"name": "remove_from_cart",
"kind": "write",
"impl": "imperative",
"description": "Remove an item from the cart. Use the item id returned by view_cart.",
"inputSchema": {
"type": "object",
"properties": {
"itemId": {
"type": "string",
"description": "Cart item id (from view_cart)"
}
},
"required": [
"itemId"
],
"additionalProperties": false
},
"page": "/"
}Apply a discount or coupon code to the cart.
{
"name": "apply_coupon",
"kind": "action",
"impl": "imperative",
"description": "Apply a discount or coupon code to the cart.",
"inputSchema": {
"type": "object",
"properties": {
"code": {
"type": "string",
"description": "Coupon / discount code"
}
},
"required": [
"code"
],
"additionalProperties": false
},
"page": "/"
}Begin checkout. On the offer backend this navigates to the in-app checkout page. On Shopify it syncs the cart and sends the shopper to the hosted Shopify checkout (a brief sync runs first, so just-added items are included).
{
"name": "start_checkout",
"kind": "action",
"impl": "imperative",
"description": "Begin checkout. On the offer backend this navigates to the in-app checkout page. On Shopify it syncs the cart and sends the shopper to the hosted Shopify checkout (a brief sync runs first, so just-added items are included).",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
},
"page": "/"
}Fill the shipping-address form on the checkout page. Does not submit. The shopper still clicks Pay.
{
"name": "fill_shipping_address",
"kind": "action",
"impl": "imperative",
"description": "Fill the shipping-address form on the checkout page. Does not submit. The shopper still clicks Pay.",
"inputSchema": {
"type": "object",
"properties": {
"firstName": {
"type": "string",
"description": "Given name"
},
"lastName": {
"type": "string",
"description": "Family name"
},
"email": {
"type": "string",
"description": "Email address"
},
"phone": {
"type": "string",
"description": "Phone number (E.164 preferred)"
},
"line1": {
"type": "string",
"description": "Street address line 1"
},
"line2": {
"type": "string",
"description": "Street address line 2"
},
"city": {
"type": "string",
"description": "City"
},
"region": {
"type": "string",
"description": "State / province / region"
},
"postalCode": {
"type": "string",
"description": "Postal or ZIP code"
},
"country": {
"type": "string",
"description": "ISO 3166-1 alpha-2 country code"
}
},
"required": [
"firstName",
"lastName",
"line1",
"city",
"postalCode",
"country"
],
"additionalProperties": false
},
"page": "/"
}Look up an order by its order number and the email it was placed with. Returns status and item summary.
{
"name": "lookup_order",
"kind": "action",
"impl": "imperative",
"description": "Look up an order by its order number and the email it was placed with. Returns status and item summary.",
"inputSchema": {
"type": "object",
"properties": {
"orderId": {
"type": "string",
"description": "Order number"
},
"email": {
"type": "string",
"description": "Email used at checkout"
}
},
"required": [
"orderId",
"email"
],
"additionalProperties": false
},
"page": "/"
}