Elastic Path Cart Shipping Groups API
The Cart Shipping Groups API from Elastic Path — 2 operation(s) for cart shipping groups.
The Cart Shipping Groups API from Elastic Path — 2 operation(s) for cart shipping groups.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/elastic-path-cart-shipping-groups-api"
curl "https://apis.io/api/v1/apis?limit=25"
Discovery needs no key. Ratings and market analysis are Pro.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: Carts, Checkout, Orders Introduction Cart Shipping Groups API
description: 'A cart contains a list of the products that a shopper adds to the cart while browsing your catalog. In the context of a cart, a selected product is called a cart item.
A cart item identifies the product, the product price, the quantity selected, and the total price for the quantity selected. The cart displays a running total of the cost for the selected products plus the calculated tax.
You can allow your shoppers to add custom text to a product when adding an item to their carts. This is useful, for example, if you have a product like a T-shirt that can be personalized. See [Add product to cart](/docs/api/carts/manage-carts#add-product-to-cart).
After a shopper checks out, the cart is converted to an order, and you can manually delete the cart. If you don''t delete the cart, it is purged automatically after seven days.
The preview cart feature allows you to set a future date for your shopping cart and view the promotions that will be available during that time period. This feature enables you to validate your promotion settings and observe how they will be applied in the cart. See [Create a Preview Cart](/docs/api/carts/create-a-cart#preview-cart).
The following diagram shows a typical cart workflow:

### Multiple Carts
Buyers often make purchases based on jobs that they need to perform or outcomes they need to achieve and therefore require more than one shopping cart. For example, a corporate buyer places orders for multiple locations. Each location has a different frequency of ordering and require different products. The buyer can create one cart per location, fill the carts, and then check out the carts quickly. Similarly, shoppers can also create multiple carts for the ease of managing various shopping experiences, such as birthdays or holidays.
Each cart is discrete and separate. Any updates or changes to one cart has no effect on the other carts. A cart persists, that is, it stays with the buyer or shopper even after they use the cart in a checkout. Carts remain available after a checkout.
'
contact:
name: Elastic Path
url: https://elasticpath.com
version: 26.0313.7324347
x-version-timestamp: 2026-03-13 21:22:42+00:00
license:
name: MIT
url: assets/LICENSE
servers:
- url: https://useast.api.elasticpath.com
description: US East Production Server
variables: {}
- url: https://euwest.api.elasticpath.com
description: EU West Production Server
variables: {}
security:
- bearerAuth: []
tags:
- name: Cart Shipping Groups
paths:
/v2/carts/{cartID}/shipping-groups:
get:
tags:
- Cart Shipping Groups
summary: Retrieve all shipping groups for a cart
operationId: getShippingGroups
description: Retrieve all shipping groups for a cart
parameters:
- name: cartID
in: path
required: true
description: The ID of the cart
schema:
type: string
responses:
'200':
description: A list of shipping groups
content:
application/json:
schema:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ShippingGroupResponse'
examples:
Retrieve Shipping Groups for a Cart:
value:
data:
- id: 96b1d104-0d2e-41fd-9543-6c3c5a698959
type: shipping_group
relation: cart
cart_id: 96b1d104-0d2e-41fd-9543-6c3c5a698959
shipping_type: standard
tracking_reference: TRACK123
meta:
shipping_display_price:
total:
amount: 1000
currency: USD
formatted: $10.00
base:
amount: 800
currency: USD
formatted: $8.00
tax:
amount: 200
currency: USD
formatted: $2.00
fees:
amount: 0
currency: USD
formatted: $0.00
address:
first_name: John
last_name: Doe
phone_number: (555) 555-1234
company_name: ACME Corp
line_1: 123 Main St
line_2: Suite 100
city: Portland
postcode: '97201'
county: Multnomah
country: US
region: Oregon
instructions: Leave at front door
delivery_estimate:
start: '2024-01-15T00:00:00Z'
end: '2024-01-20T00:00:00Z'
'404':
description: Cart not found
content:
application/json:
schema:
$ref: '#/components/schemas/Response.ErrorResponse'
post:
tags:
- Cart Shipping Groups
summary: Create a new shipping group for a cart
operationId: createShippingGroup
description: Create a new shipping group for a cart
parameters:
- name: cartID
in: path
required: true
description: The ID of the cart
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/CreateShippingGroupRequest'
responses:
'201':
description: Shipping group created successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ShippingGroupEntityResponse'
example:
data:
id: 96b1d104-0d2e-41fd-9543-6c3c5a698959
type: shipping_group
relation: cart
cart_id: 96b1d104-0d2e-41fd-9543-6c3c5a698959
shipping_type: standard
tracking_reference: TRACK123
address:
first_name: John
last_name: Doe
phone_number: (555) 555-1234
company_name: ACME Corp
line_1: 123 Main St
line_2: Suite 100
city: Portland
postcode: '97201'
county: Multnomah
country: US
region: Oregon
instructions: Leave at front door
delivery_estimate:
start: '2024-01-15T00:00:00Z'
end: '2024-01-20T00:00:00Z'
created_at: '2024-01-10T12:00:00Z'
updated_at: '2024-01-10T12:00:00Z'
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Response.ErrorResponse'
examples:
currency_mismatch:
value:
errors:
- status: 400
title: Cart Currency Mismatch
detail: This cart uses USD, cannot add shipping group with currency EUR
invalid_dates:
value:
errors:
- status: 400
title: Date Logic Discrepancy
detail: The start date cannot occur after the end date
'404':
description: Cart not found
content:
application/json:
schema:
$ref: '#/components/schemas/Response.ErrorResponse'
example:
errors:
- status: 404
title: Not Found
detail: Cart not found
/v2/carts/{cartId}/shipping-groups/{shippingGroupId}:
get:
tags:
- Cart Shipping Groups
summary: Retrieve a specific shipping group for a cart
operationId: getShippingGroupById
description: Retrieve a specific shipping group for a cart
parameters:
- name: cartId
in: path
required: true
description: The ID of the cart
schema:
type: string
- name: shippingGroupId
in: path
required: true
description: The ID of the shipping group
schema:
type: string
responses:
'200':
description: Shipping group details
content:
application/json:
schema:
type: object
properties:
data:
$ref: '#/components/schemas/ShippingGroupResponse'
example:
data:
id: 7cfa5b07-092e-4dbe-bbad-55a771a34117
type: shipping_group
relation: cart
cart_id: 96b1d104-0d2e-41fd-9543-6c3c5a698959
shipping_type: standard
tracking_reference: TRACK123
address:
first_name: John
last_name: Doe
phone_number: (555) 555-1234
company_name: ACME Corp
line_1: 123 Main St
line_2: Suite 100
city: Portland
postcode: '97201'
county: Multnomah
country: US
region: Oregon
instructions: Leave at front door
delivery_estimate:
start: '2024-01-15T00:00:00Z'
end: '2024-01-20T00:00:00Z'
meta:
shipping_display_price:
total:
amount: 1000
currency: USD
formatted: $10.00
base:
amount: 800
currency: USD
formatted: $8.00
tax:
amount: 200
currency: USD
formatted: $2.00
fees:
amount: 0
currency: USD
formatted: $0.00
'404':
description: Shipping group or cart not found
content:
application/json:
schema:
$ref: '#/components/schemas/Response.ErrorResponse'
examples:
cart_not_found:
value:
errors:
- status: 404
title: Not Found
detail: Cart not found
shipping_group_not_found:
value:
errors:
- status: 404
title: Cart shipping group not found
detail: Cart shipping group with ID [7cfa5b07-092e-4dbe-bbad-55a771a34117] not found for cart [abc123]
put:
tags:
- Cart Shipping Groups
summary: Update a shipping group for a cart
description: Update a specific shipping group for a cart
operationId: updateShippingGroup
parameters:
- name: cartId
in: path
required: true
description: The ID of the cart
schema:
type: string
- name: shippingGroupId
in: path
required: true
description: The ID of the shipping group
schema:
type: string
requestBody:
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/UpdateCartShippingGroupRequest'
example:
data:
type: shipping_group
shipping_type: express
tracking_reference: TRACK456
shipping_price:
base: 1500
tax: 300
fees: 200
address:
first_name: John
last_name: Doe
phone_number: (555) 555-1234
company_name: ACME Corp
line_1: 123 Main St
line_2: Suite 100
city: Portland
postcode: '97201'
county: Multnomah
country: US
region: Oregon
instructions: Leave at front door
responses:
'200':
description: Shipping group updated successfully
content:
application/json:
schema:
$ref: '#/components/schemas/ShippingGroupEntityResponse'
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Response.ErrorResponse'
examples:
currency_mismatch:
value:
errors:
- status: 400
title: Cart Currency Mismatch
detail: The existing shipping group uses USD, cannot update shipping group with currency EUR
invalid_dates:
value:
errors:
- status: 404
title: Date Logic Discrepancy
detail: The start date cannot occur after the end date
'404':
description: Shipping group or cart not found
content:
application/json:
schema:
$ref: '#/components/schemas/Response.ErrorResponse'
example:
errors:
- status: 404
title: Cart shipping group not found
detail: Cart shipping group with ID [7cfa5b07-092e-4dbe-bbad-55a771a34117] not found for cart [abc123]
delete:
tags:
- Cart Shipping Groups
summary: Delete Cart Shipping Group
description: 'Deletes a shipping group from a cart. You cannot delete a shipping group that is attached to cart items.
You must first remove the shipping group from all cart items before deleting the shipping group.
'
operationId: deleteCartShippingGroup
parameters:
- name: cartId
in: path
required: true
description: The ID of the cart
schema:
type: string
- name: shippingGroupId
in: path
required: true
description: The ID of the shipping group to delete
schema:
type: string
responses:
'204':
description: Successfully deleted the shipping group
'400':
description: Cannot delete shipping group that is attached to cart items
content:
application/json:
schema:
$ref: '#/components/schemas/Response.ErrorResponse'
example:
errors:
- status: 400
title: Cannot delete shipping group
detail: Cannot delete shipping groups attached to cart items. Please remove the shipping group from its cart items and try again.
'404':
description: Cart or shipping group not found
content:
application/json:
schema:
$ref: '#/components/schemas/Response.ErrorResponse'
components:
schemas:
OrderPriceData:
title: OrderPriceData
type: object
properties:
amount:
description: The amount for this item.
type: number
examples:
- 10000
currency:
description: The currency this item.
type: string
examples:
- USD
includes_tax:
description: Whether this price is tax inclusive.
type: boolean
examples:
- false
Money:
type: object
properties:
amount:
type: integer
description: Amount in minor currency units (e.g., cents).
currency:
type: string
description: ISO 4217 currency code (e.g., "USD").
includes_tax:
type: boolean
description: Whether the amount includes tax.
required:
- amount
- currency
- includes_tax
AddressCommon:
type: object
required:
- first_name
- last_name
- line_1
- postcode
- country
properties:
first_name:
description: First name of the recipient.
type: string
examples:
- John
last_name:
description: Last name of the recipient.
type: string
examples:
- Doe
company_name:
description: Company of the recipient.
type: string
examples:
- John Doe Enterprises
line_1:
description: First line of the address.
type: string
examples:
- 1 Sunny Street
line_2:
description: Second line of the address.
type: string
examples:
- Apartment 123
city:
description: City of the address.
type: string
examples:
- Los Angeles
postcode:
description: Post code of the address.
type: string
examples:
- '92802'
county:
description: County of the address.
type: string
examples:
- Orange
country:
description: Country of the address.
type: string
examples:
- US
region:
description: State, province, or region of the address.
type: string
examples:
- CA
RelationshipItem:
title: RelationshipItem
description: Relationship data entry
required:
- type
- id
type: object
properties:
type:
description: The type of related resource.
type: string
id:
description: The ID of the related resource.
type: string
format: uuid
CustomAttributes:
title: CustomAttributes
type: object
description: "Specifies custom attributes for cart or order objects. Each attribute includes a top-level key, as well as corresponding type and value entries. Attribute values must correspond to the assigned types.\n\nExample:\n```\n\"custom_attributes\": {\n \"is_member\": {\n \"type\": \"boolean\",\n \"value\": true\n },\n \"membership_level\": {\n \"type\": \"string\",\n \"value\": \"premium\"\n }\n}\n```\n"
additionalProperties:
type: object
required:
- type
- value
properties:
type:
type: string
description: The type of the custom attribute value.
enum:
- string
- integer
- boolean
- float
value:
description: The value of the custom attribute.
type:
- string
- boolean
- number
UpdateCartShippingGroupRequest:
type: object
properties:
data:
type: object
properties:
type:
type: string
const: shipping_group
shipping_type:
type: string
tracking_reference:
type: string
external_ref:
description: An optional external ID reference for a shipping group. It can contain alphanumeric characters, special characters, and spaces, and is not required to be unique. The maximum allowed length is 64 characters.
type: string
maxLength: 64
shipping_price:
$ref: '#/components/schemas/ShippingPriceRequest'
address:
$ref: '#/components/schemas/ShippingAddress'
includes_tax:
type: boolean
delivery_estimate:
$ref: '#/components/schemas/DeliveryEstimate'
ShippingPriceResponse:
type: object
properties:
total:
$ref: '#/components/schemas/FormattedPriceData'
base:
$ref: '#/components/schemas/FormattedPriceData'
tax:
$ref: '#/components/schemas/FormattedPriceData'
fees:
$ref: '#/components/schemas/FormattedPriceData'
discount:
$ref: '#/components/schemas/FormattedPriceData'
required:
- total
- base
ShippingGroupEntityResponse:
type: object
properties:
data:
type: object
$ref: '#/components/schemas/ShippingGroupResponse'
included:
type: object
description: Related objects that are included in the response when using the include query parameter.
properties:
items:
description: Array of order items associated with this shipping group.
type: array
items:
$ref: '#/components/schemas/OrderItemResponse'
additionalProperties: false
errors:
type: array
description: Array of validation or processing errors
items:
$ref: '#/components/schemas/Response.ErrorItem'
OrderPriceWrapperMeta:
description: Order pricing information.
type: object
properties:
with_tax:
$ref: '#/components/schemas/NonNegativeFormattedPriceData'
without_tax:
$ref: '#/components/schemas/NonNegativeFormattedPriceData'
tax:
$ref: '#/components/schemas/NonNegativeFormattedPriceData'
discount:
$ref: '#/components/schemas/DiscountFormattedPriceData'
balance_owing:
$ref: '#/components/schemas/NonNegativeFormattedPriceData'
paid:
$ref: '#/components/schemas/NonNegativeFormattedPriceData'
authorized:
$ref: '#/components/schemas/NonNegativeFormattedPriceData'
without_discount:
$ref: '#/components/schemas/NonNegativeFormattedPriceData'
shipping:
$ref: '#/components/schemas/NonNegativeFormattedPriceData'
shipping_discount:
$ref: '#/components/schemas/DiscountFormattedPriceData'
required:
- with_tax
- without_tax
- tax
- discount
- balance_owing
- paid
- authorized
- without_discount
- shipping
- shipping_discount
DeliveryEstimate:
type: object
properties:
start:
type: string
format: date-time
end:
type: string
format: date-time
ShippingGroupMeta:
type: object
properties:
shipping_display_price:
$ref: '#/components/schemas/ShippingPriceResponse'
total_display_price:
$ref: '#/components/schemas/OrderPriceWrapperMeta'
OrderItemResponse:
title: OrderItemResponse
type: object
properties:
type:
description: The type represents the object being returned.
type: string
examples:
- order_item
id:
description: The unique identifier for this order item.
type: string
format: uuid
readOnly: true
examples:
- 68bf8510-bebf-47b1-96ba-8a9930c7d928
quantity:
description: The quantity of this item were ordered.
type: number
examples:
- 1
product_id:
description: The unique identifier for this order item.
type: string
format: uuid
readOnly: true
examples:
- 4e9c6098-9701-4839-a69c-54d8256d9012
subscription_offering_id:
description: The unique identifier for the subscription offering for this order item.
type: string
format: uuid
readOnly: true
examples:
- 69a39623-e681-415e-83c0-e1281010c77d
name:
description: The name of this order item.
type: string
examples:
- Product 123
sku:
description: The SKU code for the order item.
type: string
examples:
- IFD-1
location:
description: The stock location for this order item.
type: string
readOnly: true
unit_price:
$ref: '#/components/schemas/OrderPriceData'
value:
$ref: '#/components/schemas/OrderPriceData'
discounts:
type: array
items:
$ref: '#/components/schemas/DiscountData'
links:
type: object
meta:
type: object
properties:
display_price:
type: object
properties:
with_tax:
$ref: '#/components/schemas/OrderItemFormattedUnitPriceData'
without_tax:
$ref: '#/components/schemas/OrderItemFormattedUnitPriceData'
tax:
$ref: '#/components/schemas/OrderItemFormattedUnitPriceData'
discount:
$ref: '#/components/schemas/OrderItemFormattedUnitPriceData'
without_discount:
$ref: '#/components/schemas/OrderItemFormattedUnitPriceData'
discounts:
type: object
additionalProperties:
type: object
properties:
amount:
type: number
examples:
- -1000
currency:
type: string
examples:
- USD
formatted:
type: string
examples:
- -$1.00
constituents:
type: object
description: Detailed breakdown of discount constituents by ID
additionalProperties:
type: object
properties:
amount:
type: number
description: The discount amount
currency:
type: string
description: The currency code
formatted:
type: string
description: The formatted discount amount
original_price:
description: The product's original catalog price before any catalog-level sales, tiered pricing adjustments, or cart/item level promotions are applied. This value is sourced from the product's `meta.original_display_price` field in the catalog response. See [Get a Product](/docs/api/pxm/catalog/get-by-context-product).
$ref: '#/components/schemas/OrderItemFormattedUnitPriceData'
timestamps:
$ref: '#/components/schemas/Timestamps'
relationships:
type: object
properties:
cart_item:
type: object
properties:
data:
type: object
properties:
type:
description: The type represents the object being returned.
type: string
examples:
- order_item
id:
description: The unique identifier for this item.
type: string
format: uuid
readOnly: true
examples:
- 5601a4b1-9d13-42d3-8fb7-03b35169d1b6
taxes:
description: Related tax items.
type: object
properties:
data:
oneOf:
- type: 'null'
- type: array
items:
$ref: '#/components/schemas/RelationshipItem'
promotions:
description: Related promotions.
type: object
properties:
data:
oneOf:
- type: 'null'
- type: array
items:
$ref: '#/components/schemas/RelationshipItem'
catalog_id:
description: The unique identifier of the catalog associated with the product is shown if `catalog_source=pim` is set.
type: string
examples:
- default
catalog_source:
description: The catalog source. Always `pim` or `legacy`.
type: string
examples:
- pim
- legacy
bundle_configuration:
description: Configuration for bundle products.
type: object
properties:
selected_options:
type: object
additionalProperties:
type: object
additionalProperties:
type: number
component_products:
description: Array of component products for bundle configuration
type: array
items:
type: object
properties:
id:
description: Component product ID
type: string
type:
description: Component product type
type: string
attributes:
description: Product attributes as a generic object
type: object
additionalProperties: true
meta:
description: Product metadata as a generic object
type: object
additionalProperties: true
price:
description: Product price information as a generic object
type: object
additionalProperties: true
relationships:
description: Product relationships as a generic object
type: object
additionalProperties: true
components:
description: Components of the bundle product.
type: object
additionalProperties:
type: object
properties:
name:
type: string
options:
type: array
items:
type: object
properties:
id:
type: string
quantity:
type: number
type:
type: string
custom_inputs:
description: Custom inputs for the order item as a generic object
type: object
additionalProperties: true
custom_attributes:
description: Custom attributes attached to the order item.
readOnly: true
$ref: '#/components/schemas/CustomAttributes'
shipping_group_id:
description: The shipping group ID for the order item
type: string
promotion_source:
description: The promotion source for the order item
type: string
subscription_configuration:
description: Subscription configuration for the order item
type: object
properties:
plan:
description: Subscription plan details
type: string
pricing_option:
description: Pricing o
# --- truncated at 32 KB (43 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/elastic-path/refs/heads/main/openapi/elastic-path-cart-shipping-groups-api-openapi.yml