> ## 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 all one-time products for a subscription contract

> Retrieves all one-time products (add-ons) associated with a specific subscription contract across all billing attempts. One-time products are additional items that customers can add to their subscription orders on a non-recurring basis. Each one-time product is tied to a specific billing attempt and will only be included in that particular order.

**Key Features:**
- Returns ALL one-time products across all queued billing attempts
- Each product includes the billing attempt ID to identify which order it belongs to
- Includes product details: variant ID, quantity, title, image, and price
- Products are automatically removed after the associated billing attempt is processed

**Use Cases:**
- Display all one-time products added to a subscription across all upcoming orders
- Allow customers to review their one-time add-ons in customer portal
- Enable merchants to see all one-time products for a contract
- Integrate with external systems to manage subscription add-ons

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



## OpenAPI

````yaml /subscription/admin-api-swagger.json get /api/external/v2/subscription-contract-one-offs-by-contractId
openapi: 3.0.1
info:
  description: >-
    Comprehensive API documentation for managing subscriptions, payments, and
    related operations. These APIs allow you to programmatically manage
    subscription lifecycles, handle payments, configure products, and integrate
    subscription functionality into your applications.
  title: Admin APIs
  version: 0.0.1
servers:
  - url: https://subscription-admin.appstle.com
security: []
tags:
  - description: >-
      Core APIs for managing the complete subscription lifecycle including
      creation, updates, pausing, resuming, and cancellation of subscriptions.
    name: Subscription Management
  - description: >-
      APIs for managing subscription payment methods, processing payments,
      handling payment retries, and updating billing information.
    name: Subscription Payments
  - description: >-
      APIs for managing subscription contracts including delivery schedules,
      pricing, order notes, billing cycles, and shipping addresses.
    name: Subscription Contracts
  - description: >-
      APIs for managing products within subscriptions including adding,
      removing, updating quantities, and swapping products.
    name: Subscription Products
  - description: >-
      APIs for handling billing operations, payment processing, and financial
      transactions related to subscriptions.
    name: Billing & Payments
  - description: >-
      APIs for managing discounts and promotional codes applied to
      subscriptions.
    name: Subscription Discounts
  - 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 managing subscription plans, pricing tiers, and plan
      configurations.
    name: Subscription Plans
  - description: >-
      APIs for managing customizable product boxes and bundles where customers
      can select multiple items.
    name: Build-a-Box & Bundles
  - description: >-
      APIs for managing the product catalog including product information,
      variants, and inventory.
    name: Product Catalog
  - description: >-
      APIs for managing operational settings, configurations, and administrative
      functions.
    name: Operations & Settings
  - description: >-
      APIs powering the customer-facing portal where subscribers can manage
      their own subscriptions.
    name: Customer Portal
  - description: APIs for managing customer information, profiles, and account details.
    name: Customers
  - description: >-
      APIs for retrieving aggregated subscription data, customer subscription
      history, and account-level subscription information.
    name: Subscription Data
  - description: >-
      APIs for managing delivery profiles, shipping rates, free shipping
      configuration, and delivery method options on subscriptions.
    name: Delivery & Shipping
  - description: >-
      APIs for managing storefront customization including custom CSS, theme
      settings, label translations, and merchant-defined widget configuration.
    name: Customization
  - description: >-
      APIs for configuring cancellation flows, retention offers, cancellation
      reason management, and win-back automation.
    name: Customer Retention
paths:
  /api/external/v2/subscription-contract-one-offs-by-contractId:
    get:
      tags:
        - Subscription One-Time Products
        - Product Catalog
      summary: Get all one-time products for a subscription contract
      description: >-
        Retrieves all one-time products (add-ons) associated with a specific
        subscription contract across all billing attempts. One-time products are
        additional items that customers can add to their subscription orders on
        a non-recurring basis. Each one-time product is tied to a specific
        billing attempt and will only be included in that particular order.


        **Key Features:**

        - Returns ALL one-time products across all queued billing attempts

        - Each product includes the billing attempt ID to identify which order
        it belongs to

        - Includes product details: variant ID, quantity, title, image, and
        price

        - Products are automatically removed after the associated billing
        attempt is processed


        **Use Cases:**

        - Display all one-time products added to a subscription across all
        upcoming orders

        - Allow customers to review their one-time add-ons in customer portal

        - Enable merchants to see all one-time products for a contract

        - Integrate with external systems to manage subscription add-ons


        **Authentication:** Requires valid X-API-Key header
      operationId: getOneOffsForSubscriptionContractV2
      parameters:
        - deprecated: true
          description: API Key (Deprecated - Use X-API-Key header instead)
          example: sk_live_1234567890abcdef
          in: query
          name: api_key
          required: false
          schema:
            type: string
        - description: >-
            API Key for authentication. This key identifies your shop and must
            be included in the X-API-Key header.
          example: sk_live_1234567890abcdef
          in: header
          name: X-API-Key
          required: true
          schema:
            type: string
        - description: >-
            The unique identifier of the subscription contract to retrieve
            one-time products for
          example: 98765
          in: query
          name: contractId
          required: true
          schema:
            description: Must be a valid contract ID that belongs to the authenticated shop
            format: int64
            minimum: 1
            type: integer
      responses:
        '200':
          content:
            application/json:
              examples:
                Success Response:
                  description: Success Response
                  value:
                    - billingAttemptId: 11111
                      contractId: 67890
                      createdAt: '2024-01-15T10:30:00Z'
                      currencyCode: USD
                      id: 12345
                      image: >-
                        https://cdn.shopify.com/s/files/1/0000/0000/products/filter.jpg
                      price: '9.99'
                      productTitle: Coffee Filters - Pack of 100
                      quantity: 2
                      shop: example-shop.myshopify.com
                      updatedAt: '2024-01-15T10:30:00Z'
                      variantId: 22222
                      variantTitle: Standard Size
                    - billingAttemptId: 11112
                      contractId: 67890
                      createdAt: '2024-01-16T14:20:00Z'
                      currencyCode: USD
                      id: 12346
                      image: >-
                        https://cdn.shopify.com/s/files/1/0000/0000/products/scoop.jpg
                      price: '14.99'
                      productTitle: Coffee Scoop
                      quantity: 1
                      shop: example-shop.myshopify.com
                      updatedAt: '2024-01-16T14:20:00Z'
                      variantId: 33333
                      variantTitle: Stainless Steel
              schema:
                items:
                  $ref: '#/components/schemas/SubscriptionContractOneOffDTO'
                type: array
          description: Successfully retrieved one-time products
        '400':
          content:
            application/json:
              example:
                detail: Contract does not belong to this shop
                status: 400
                title: Invalid contract
                type: https://example.com/errors/bad-request
          description: Invalid contract ID or contract doesn't belong to authenticated shop
        '401':
          content:
            application/json:
              example:
                detail: Valid X-API-Key header is required
                status: 401
                title: Authentication required
                type: https://example.com/errors/unauthorized
          description: Authentication required
        '403':
          content:
            application/json:
              example:
                detail: API key does not have permission to view one-time products
                status: 403
                title: Insufficient permissions
                type: https://example.com/errors/forbidden
          description: Insufficient permissions to view one-time products
components:
  schemas:
    SubscriptionContractOneOffDTO:
      description: >-
        Represents a one-time product added to a subscription contract for a
        specific billing attempt
      properties:
        billingAttemptId:
          description: >-
            The billing attempt ID this one-time product is associated with.
            This determines which upcoming order will include this product.
          example: 54321
          format: int64
          minimum: 1
          type: integer
        id:
          description: Unique identifier of the one-time product record
          example: 12345
          format: int64
          readOnly: true
          type: integer
        price:
          description: >-
            The price per unit of this product in the shop's base currency. This
            may include any applicable discounts.
          example: 19.99
          format: double
          maximum: 999999.99
          minimum: 0
          type: number
        quantity:
          description: The quantity of this product to include in the order
          example: 2
          format: int32
          maximum: 999
          minimum: 1
          type: integer
        shop:
          description: The Shopify store domain that owns this subscription
          example: example-store.myshopify.com
          pattern: ^[a-zA-Z0-9][a-zA-Z0-9-]*\.myshopify\.com$
          type: string
        subscriptionContractId:
          description: The subscription contract ID this one-time product belongs to
          example: 98765
          format: int64
          minimum: 1
          type: integer
        variantHandle:
          description: >-
            The handle/slug of the product variant for URL-friendly
            identification
          example: premium-coffee-blend-500g
          pattern: ^[a-z0-9]+(?:-[a-z0-9]+)*$
          type: string
        variantId:
          description: The Shopify product variant ID for this one-time product
          example: 42549172011164
          format: int64
          minimum: 1
          type: integer
      required:
        - shop
      type: object

````