# Shipping Methods With Shipping Methods you can specify which shipping services (like DHL, DHL Express, and UPS) you want to provide to your customers for deliveries to different areas of the world at rates you can define. Furthermore, you can extend this resource according to your needs to store custom content, metadata, or to model your workflow. A maximum number of **100** Shipping Methods can be created per Project. This is a soft limit that can be increased per Project after a performance impact review. See [Limit increase guidance](/api/limit-increase-guidance.md#discount-and-checkout-limits). Learn more about Shipping Methods in our self-paced Shipping methods module. ## Shipping Method reference A [Shipping Method](/api/projects/shippingMethods.md#shippingmethod) models a fulfillment option that you can assign to a Cart or, in `Multiple` shipping mode, to individual Line Items. It combines the delivery option, tax category, predicate-based eligibility, and Zone-based shipping rates for options such as standard delivery, express delivery, or in-store collection. For the end-to-end behavior of Shipping Methods in carts, shipping addresses, taxes, and shipping rate calculation, see [Shipping and Delivery Overview](/api/shipping-delivery-overview.md). ## Representations #### ShippingMethod [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethod). #### ShippingMethodDraft [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodDraft). #### ShippingMethodPagedQueryResponse [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodPagedQueryResponse). #### ShippingMethodReference [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodReference). #### ShippingMethodKeyReference [type definition](/api/projects/shippingMethods.md?urn=ctp:import:type:ShippingMethodKeyReference). #### ShippingMethodResourceIdentifier [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodResourceIdentifier). #### ZoneRate [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ZoneRate). #### ZoneRateDraft [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ZoneRateDraft). #### ShippingRate [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingRate). #### ShippingRateDraft [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingRateDraft). #### ShippingRatePriceTier A price tier is selected instead of the default price when a certain threshold or specific Cart value is reached. If no tiered price is suitable for the Cart, the base price of the ShippingRate is used. ShippingRatePriceTiers must be enabled and defined on the [Project](/api/projects/project.md) and are used together with the [Cart](/urn?urn=ctp%3Aapi%3Atype%3ACart) `shippingRateInput` field. The API supports three different types of ShippingRatePriceTiers: [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingRateTierType). To learn more, see [Tiered shipping rates](/api/shipping-delivery-overview.md#tiered-shipping-rates). ##### CartValueTier This type is equivalent to ShippingRateCartValuePriceTier in the [GraphQL API](/api/graphql/). [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:CartValueTier). ##### CartClassificationTier This type is equivalent to ShippingRateCartClassificationPriceTier in the [GraphQL API](/api/graphql/). [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:CartClassificationTier). ##### CartScoreTier This type is equivalent to ShippingRateCartScorePriceTier in the [GraphQL API](/api/graphql/). [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:CartScoreTier). ##### PriceFunction [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:PriceFunction). ## Get ShippingMethod ### Get ShippingMethod by ID [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods/\{id}:GET). ### Get ShippingMethod by Key [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods/key=\{key}:GET). ## Get matching Shipping Methods ### for a Cart [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods/matching-cart:GET). ### for a Location [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods/matching-location:GET). ### for a Cart and Location [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods/matching-cart-location:GET). ### for a Cart in Store [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/shipping-methods/matching-cart:GET). ### for an OrderEdit [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods/matching-orderedit:GET). ## Query ShippingMethods [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods:GET). ## Check if ShippingMethod exists ### Check if ShippingMethod exists by ID [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods/\{id}:HEAD). ### Check if ShippingMethod exists by Key [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods/key=\{key}:HEAD). ### Check if ShippingMethod exists by Query Predicate [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods:HEAD). ## Check if matching ShippingMethod exists ### for a Cart [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods/matching-cart:HEAD). ### for a Location [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods/matching-location:HEAD). ### for a Cart and Location [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods/matching-cart-location:HEAD). ### for a Cart in Store [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/in-store/key=\{storeKey}/shipping-methods/matching-cart:HEAD). ### for an OrderEdit [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods/matching-orderedit:HEAD). ## Create ShippingMethod [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods:POST). ## Update ShippingMethod ### Update ShippingMethod by ID [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods/\{id}:POST). ### Update ShippingMethod by Key [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods/key=\{key}:POST). ## Update actions #### Set Key [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodSetKeyAction). #### Change Name [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodChangeNameAction). #### Set Localized Name [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodSetLocalizedNameAction). #### Set Localized Description [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodSetLocalizedDescriptionAction). #### Change TaxCategory [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodChangeTaxCategoryAction). #### Change Active [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodChangeActiveAction). #### Change isDefault [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodChangeIsDefaultAction). #### Add ShippingRate [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodAddShippingRateAction). #### Remove ShippingRate [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodRemoveShippingRateAction). #### Add Zone [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodAddZoneAction). #### Remove Zone [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodRemoveZoneAction). #### Set Predicate [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodSetPredicateAction). #### Set Custom Type [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodSetCustomTypeAction). #### Set CustomField [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodSetCustomFieldAction). #### Set Stores [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodSetStoresAction). #### Add Store [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodAddStoreAction). #### Remove Store [type definition](/api/projects/shippingMethods.md?urn=ctp:api:type:ShippingMethodRemoveStoreAction). ## Delete ShippingMethod It is not possible to delete a ShippingMethod while it is referenced by at least one [Order](/api/projects/orders.md) or [Cart](/api/projects/carts.md). ### Delete ShippingMethod by ID [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods/\{id}:DELETE). ### Delete ShippingMethod by Key [endpoint definition](/api/projects/shippingMethods.md?urn=ctp:api:endpoint:/\{projectKey}/shipping-methods/key=\{key}:DELETE). ## Related pages - [Area overview page with navigation](/api.md) - [Previous page: Overview](/api/shipping-delivery-overview.md) - [Next page: Zones](/api/projects/zones.md)