> ## Documentation Index
> Fetch the complete documentation index at: https://developers.appstle.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Get delivery options for subscription contract

> Retrieves all valid delivery methods available for a specific subscription contract. Returns shipping profiles and delivery options based on the contract's delivery address and product characteristics.

**Delivery Information Returned:**
- Available shipping profiles
- Delivery methods for each profile
- Shipping rates and costs
- Delivery speed (standard, express, etc.)
- Method names and descriptions
- Eligibility based on address and products

**Filtering Behavior:**
By default, returns only delivery methods valid for the contract:
- Matches delivery address country/region
- Compatible with subscription products
- Available for contract weight/dimensions

**Include All Methods:**
Use header `X-Include-All-Methods: true` to return all delivery methods regardless of eligibility. Useful for admin UIs where you want to show all options.

**Use Cases:**
- Display delivery method selector in customer portal
- Allow customers to change shipping method
- Calculate shipping costs for subscription
- Validate delivery method during subscription updates
- Show upgrade options (standard to express)

**Common Scenarios:**

**Customer Portal - Change Delivery Speed:**
1. Call this endpoint with contractId
2. Display available methods to customer
3. Customer selects preferred method
4. Update subscription with new delivery method ID

**Subscription Creation - Delivery Selection:**
1. Get delivery options for draft contract
2. Present options during checkout/signup
3. Create subscription with selected method

**Important Notes:**
- Delivery options depend on current contract address
- Changing address may change available methods
- Costs may vary based on products in subscription
- Some methods may have minimum order requirements
- International shipping may have additional restrictions

**Authentication:** Requires X-API-Key header



## OpenAPI

````yaml /subscription/storefront-api-swagger.json get /subscriptions/cp/api/data/contract-delivery-options
openapi: 3.0.1
info:
  description: >-
    Comprehensive API documentation for the customer-facing subscription portal.
    These APIs enable customers to manage their subscriptions, update billing
    information, modify delivery schedules, and access their account details
    through your storefront.


    **Important**: These APIs must be called from your shop's domain (e.g.,
    https://www.myshop.com/apps/subscriptions/cp/api/**) and require customer
    authentication. Unauthenticated requests will return a 401 Unauthorized
    error.
  title: Storefront APIs
  version: 0.0.1
servers:
  - url: https://www.myshop.com/apps
security: []
tags:
  - description: >-
      Core customer portal APIs for managing customer account settings,
      authentication, and portal configurations.
    name: Customer Portal
  - description: >-
      APIs for customers to view and manage their subscription contracts
      including status updates, frequency changes, and cancellations.
    name: Subscription Management
  - description: >-
      APIs for retrieving and updating subscription contract details — delivery
      schedules, line items, addresses, billing cycles.
    name: Subscription Contracts
  - description: >-
      APIs for retrieving available subscription plans and selling plan
      configurations exposed to customers.
    name: Subscription Plans
  - description: >-
      APIs for managing one-time add-on products that can be purchased alongside
      recurring subscription items.
    name: Subscription One-Time Products
  - description: >-
      APIs for retrieving aggregated subscription data and account-level
      subscription information for the signed-in customer.
    name: Subscription Data
  - description: >-
      APIs for managing customizable product boxes and bundles where customers
      can select multiple items.
    name: Build-a-Box & Bundles
  - description: >-
      APIs for managing payment methods, billing information, and processing
      subscription payments.
    name: Billing & Payments
  - description: >-
      APIs for retrieving product information, selling plans, variant data, and
      subscription-enabled products available to customers.
    name: Product Catalog
  - description: >-
      APIs for managing delivery schedules, shipping addresses, delivery
      methods, and tracking order status.
    name: Delivery & Shipping
  - description: >-
      APIs for handling subscription cancellations, retention activities, and
      customer feedback management.
    name: Customer Retention
  - description: >-
      APIs for integrating loyalty programs with subscriptions including points
      redemption and earning options.
    name: Loyalty Integration
  - description: >-
      APIs for accessing portal customization settings, translations, and theme
      configurations.
    name: Customization
  - description: >-
      APIs for retrieving promotional campaigns shown in the customer portal,
      tracking banner engagement, and redeeming campaign offers.
    name: Campaigns
  - description: >-
      APIs for local pickup and click-and-collect — listing pickup locations and
      resolving eligible pickup dates and time slots.
    name: Store Pickup
paths:
  /subscriptions/cp/api/data/contract-delivery-options:
    get:
      tags:
        - Subscription Data
        - Subscription Management
      summary: Get delivery options for subscription contract
      description: >-
        Retrieves all valid delivery methods available for a specific
        subscription contract. Returns shipping profiles and delivery options
        based on the contract's delivery address and product characteristics.


        **Delivery Information Returned:**

        - Available shipping profiles

        - Delivery methods for each profile

        - Shipping rates and costs

        - Delivery speed (standard, express, etc.)

        - Method names and descriptions

        - Eligibility based on address and products


        **Filtering Behavior:**

        By default, returns only delivery methods valid for the contract:

        - Matches delivery address country/region

        - Compatible with subscription products

        - Available for contract weight/dimensions


        **Include All Methods:**

        Use header `X-Include-All-Methods: true` to return all delivery methods
        regardless of eligibility. Useful for admin UIs where you want to show
        all options.


        **Use Cases:**

        - Display delivery method selector in customer portal

        - Allow customers to change shipping method

        - Calculate shipping costs for subscription

        - Validate delivery method during subscription updates

        - Show upgrade options (standard to express)


        **Common Scenarios:**


        **Customer Portal - Change Delivery Speed:**

        1. Call this endpoint with contractId

        2. Display available methods to customer

        3. Customer selects preferred method

        4. Update subscription with new delivery method ID


        **Subscription Creation - Delivery Selection:**

        1. Get delivery options for draft contract

        2. Present options during checkout/signup

        3. Create subscription with selected method


        **Important Notes:**

        - Delivery options depend on current contract address

        - Changing address may change available methods

        - Costs may vary based on products in subscription

        - Some methods may have minimum order requirements

        - International shipping may have additional restrictions


        **Authentication:** Requires X-API-Key header
      operationId: getContractDeliveryOptions
      parameters:
        - in: query
          name: contractId
          required: true
          schema:
            format: int64
            type: integer
        - in: header
          name: X-Include-All-Methods
          required: false
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              examples:
                Success Response:
                  description: Success Response
                  value:
                    - methods:
                        - code: STANDARD
                          currency: USD
                          id: method_123
                          name: Standard Delivery (5-7 days)
                          price: '5.99'
                        - code: EXPRESS
                          currency: USD
                          id: method_124
                          name: Express Delivery (2-3 days)
                          price: '12.99'
                      profileId: 12345
                      profileName: Standard Shipping
          description: Delivery options retrieved successfully
        '401':
          content:
            application/json:
              example:
                error: Invalid API key
          description: Invalid API key
        '403':
          content:
            application/json:
              example:
                error: Unauthorized access to contract
          description: Access denied - Contract belongs to different shop
        '404':
          content:
            application/json:
              example:
                error: Subscription contract not found
          description: Contract not found

````