---
title: "Retrieve shopping cart items"
method: GET
path: "/v3/checkout/shoppingCarts/{shoppingCartId}/items"
tags: ["ShoppingCart"]
---

# Retrieve shopping cart items

`GET /v3/checkout/shoppingCarts/{shoppingCartId}/items`

## Request

- Base URL: `https://marketplace.appdirect.com/api`
- URL: `https://marketplace.appdirect.com/api/v3/checkout/shoppingCarts/{shoppingCartId}/items`
- Auth: none declared
- TypeScript: <https://skmtc.dev/appdirect/apis/companies/docs/v3/checkout/shoppingCarts/:shoppingCartId/items/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns all items included in the shopping cart

## Path parameters

- `shoppingCartId` string, required

## Response `200`

OK

- ShoppingCartItem[]
  - `id` string: Item UUID
  - `referenceId` string: A 'local' ID for the item, which can be used in requests instead of the full UUID. Use the ref:{referenceId} format.
  - `subscriptionId` string: Existing subscription UUID.
  - `pricingPlanId` string: ID of the pricing plan that the user is going to purchase
  - `serviceConfiguration` ServiceConfiguration: Service Configuration
    - `date` string, date: Custom date (YYYY-MM-DD) that determines when the purchased service is activated
    - `strategy` 'CUSTOM' | 'IMMEDIATELY': Service strategy. By default, the service is activated immediately. To set a custom activation date, specify CUSTOM.
  - `billingConfiguration` BillingConfiguration: Determines when the billing cycle starts. Set UPON_SERVICE_ACTIVATION to start the billing cycle according to the specified provisioning strategy (either immediately after the opportunity is finalized or on a custom provisioning date). Set NEXT_BILLING_CYCLE to start the billing cycle according to the marketplace billing configuration (for example, first of the month). Set CUSTOM to start the billing cycle on a specified date in the future.
    - `date` number: Custom billing activation date in UNIX Epoch milliseconds. This date is required when the billing strategy is CUSTOM. Do not set the date when the strategy is UPON_SERVICE_ACTIVATION or NEXT_BILLING_CYCLE.
    - `strategy` 'CUSTOM' | 'NEXT_BILLING_CYCLE' | 'UPON_SERVICE_ACTIVATION'
  - `discountCode` string: Discount applied to the product
  - `discountId` string: Discount ID
  - `customPrices` CustomPrice[]: Definition of custom prices for the purchase
    - `costId` string, required: ID of the cost/pricing item for which to override prices.
    - `priceType` 'RESELLER_PURCHASE_PRICE' | 'MARKETPLACE_RESELLER_PURCHASE_PRICE'
    - `pricingStrategy` 'FREE' | 'FLAT' | 'UNIT' | 'TIERED' | 'VOLUME' | 'VARIABLE_PRICE_STRATEGIES' | 'UNLIMITED' | 'CUSTOM': Pricing strategy
    - `definition` Definition: Definition for flat/unit range prices.
      - `price` number: Flat price.
      - `priceRanges` PriceRange[]: Unit range prices.
        - `min` number, required
        - `max` number
        - `price` number, required
        - `salePrice` string, amount: Regular sale price
        - `wholesalePrice` string, amount: Wholesale sale price
  - `units` Unit[]: List of units included in the product
    - `quantity` number: Quantity
    - `unit` string: Unit
  - `customAttributes` ItemCustomAttributes: Collection of custom attributes
    - `vendorRequiredFields` CustomAttributes: Specify custom attributes as key-value pairs for the purchase. Values can be strings (for text) or string arrays (for checkboxes). Marketplace managers must create the custom attributes in the user interface before they can be used in API calls.
    - `subscription` CustomAttributes: Specify custom attributes as key-value pairs for the purchase. Values can be strings (for text) or string arrays (for checkboxes). Marketplace managers must create the custom attributes in the user interface before they can be used in API calls.
  - `customContractConfiguration` CustomContractConfiguration: Configuration to use for custom contract
    - `minimumServiceLength` integer, required: Minimum pricing duration of the pricing plan
    - `minimumServiceLengthUnit` 'DAILY' | 'MONTHLY' | 'QUARTERLY' | 'SIX_MONTHS' | 'YEARLY' | 'TWO_YEARS' | 'THREE_YEARS', required: Time unit for contract length. This property must have the same value as the contract length unit configured for the pricing plan.
    - `endOfContractGracePeriod` integer: Grace period after the end of the contract
    - `endOfContractGracePeriodUnit` 'NONE' | 'INFINITY' | 'DAY' | 'MONTH': End-of-contract grace period unit. Time unit by which the endOfContractGracePeriod is measured.
    - `contractCancellationPeriodLimit` integer: Contract cancellation period limit
    - `contractCancellationPeriodUnit` 'NONE' | 'DAY': Cancellation period unit. Time unit by which the contractCancellationPeriodLimit is measured.
    - `continueWithoutContract` boolean: Determines whether to continue the subscription without a contract
    - `autoExtensionPricingId` string: The edition pricing ID to which to bind the contract when it is automatically renewed. To retrieve the value, use the "uuid" value from the "Read payment plan" https://help.appdirect.com/api/appdirect.html#read-payment-plan request.
    - `terminationFeeGracePeriod` integer: The termination fee grace period
    - `terminationFeeGracePeriodUnit` 'NONE' | 'INFINITY' | 'DAY' | 'MONTH': End-of-contract grace period unit. Time unit by which the endOfContractGracePeriod is measured.
    - `blockContractUpgrades` boolean: Determines whether to block upgrades to the contract terms
    - `blockContractDowngrades` boolean: Determines whether to block downgrades to the contract terms
    - `blockSwitchToShorterContract` boolean: Determines whether to block the ability to switch to a shorter contract
    - `keepContractDateOnPlanChange` boolean: Determines whether to keep the contract date if the plan changes
    - `alignWithParentCycleStartDate` boolean: For add-on products, determines whether to align the contract start date with the parent subscription start date. This is an internal setting.
    - `unitTerms` object: List of contract unit terms
    - `sourceId` string: The UUID of the custom contract creator
    - `terminationFee` TerminationFee: Termination Fee object
      - `feeType` 'FIXED' | 'PERCENTAGE'
      - `amount` number
      - `description` string
    - `contractFee` number: Contract Fee

## Other responses

- `401`: NOT AUTHORIZED

## Changes

- **2026-11-06** `1fc240f06971`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/appdirect/apis/companies/changes/v3/checkout/shoppingCarts/:shoppingCartId/items/get.md)

---

[API](https://skmtc.dev/appdirect/apis/companies.md) - [All operations](https://skmtc.dev/appdirect/apis/companies/llms.txt) - [OpenAPI document](https://skmtc.dev/appdirect/apis/companies/revisions/1fc240f06971?raw)
