> ## 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 products data with pagination

> Retrieves paginated product catalog data from Shopify, optionally filtered by search term, selling plans, or subscription contracts. This endpoint provides access to your store's product catalog with subscription-specific information.

**What This Endpoint Returns:**
Product information including:
- Product ID, title, handle, and description
- Product images and media
- Variants with pricing and availability
- Associated selling plans (subscription plans)
- Product status and tags
- Vendor and product type

**Pagination:**
Uses cursor-based pagination for efficient data retrieval:
- `next=true` - Get next page of results
- `cursor` - Pagination cursor from previous response
- Returns cursor for next page in response

**Filtering Options:**

1. **Search** (`search` parameter):
   - Search by product title, description, or SKU
   - Partial matching supported
   - Case-insensitive

2. **Selling Plan Filter** (`sellingPlanIds` parameter):
   - Filter products by subscription plans
   - Comma-separated list of selling plan IDs
   - Only returns products with specified plans

3. **Contract Filter** (`contractId` parameter):
   - Get products available for specific subscription
   - Useful for product swap functionality
   - Returns products compatible with contract

**Use Cases:**
- Display product catalog in custom subscription UI
- Build product selection for subscription creation
- Implement product swap functionality
- Search products for subscription management
- Sync product data to external systems

**Authentication:** Requires valid api_key parameter



## OpenAPI

````yaml /subscription/storefront-api-swagger.json get /subscriptions/cp/api/data/products
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/products:
    get:
      tags:
        - Subscription Data
        - Subscription Management
      summary: Get products data with pagination
      description: >-
        Retrieves paginated product catalog data from Shopify, optionally
        filtered by search term, selling plans, or subscription contracts. This
        endpoint provides access to your store's product catalog with
        subscription-specific information.


        **What This Endpoint Returns:**

        Product information including:

        - Product ID, title, handle, and description

        - Product images and media

        - Variants with pricing and availability

        - Associated selling plans (subscription plans)

        - Product status and tags

        - Vendor and product type


        **Pagination:**

        Uses cursor-based pagination for efficient data retrieval:

        - `next=true` - Get next page of results

        - `cursor` - Pagination cursor from previous response

        - Returns cursor for next page in response


        **Filtering Options:**


        1. **Search** (`search` parameter):
           - Search by product title, description, or SKU
           - Partial matching supported
           - Case-insensitive

        2. **Selling Plan Filter** (`sellingPlanIds` parameter):
           - Filter products by subscription plans
           - Comma-separated list of selling plan IDs
           - Only returns products with specified plans

        3. **Contract Filter** (`contractId` parameter):
           - Get products available for specific subscription
           - Useful for product swap functionality
           - Returns products compatible with contract

        **Use Cases:**

        - Display product catalog in custom subscription UI

        - Build product selection for subscription creation

        - Implement product swap functionality

        - Search products for subscription management

        - Sync product data to external systems


        **Authentication:** Requires valid api_key parameter
      operationId: getProductsData_1
      parameters:
        - in: query
          name: search
          required: false
          schema:
            type: string
        - in: query
          name: next
          required: false
          schema:
            default: false
            type: boolean
        - in: query
          name: cursor
          required: false
          schema:
            type: string
        - in: query
          name: contractId
          required: false
          schema:
            format: int64
            type: integer
        - in: query
          name: sellingPlanIds
          required: false
          schema:
            type: string
        - in: query
          name: sendAllData
          required: false
          schema:
            type: boolean
        - in: query
          name: purchaseOption
          required: false
          schema:
            type: string
      responses:
        '200':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProductData'
          description: Products retrieved successfully
        '400':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProductData'
          description: Invalid request parameters
        '401':
          content:
            '*/*':
              schema:
                $ref: '#/components/schemas/ProductData'
          description: Invalid API key
components:
  schemas:
    ProductData:
      properties:
        pageInfo:
          $ref: '#/components/schemas/PageInfo'
        productHandleData:
          additionalProperties:
            type: string
          type: object
        products:
          items:
            $ref: '#/components/schemas/Product'
          type: array
      type: object
    PageInfo:
      properties:
        endCursor:
          type: string
        get__typename:
          type: string
        hasNextPage:
          type: boolean
        hasPreviousPage:
          type: boolean
        startCursor:
          type: string
      type: object
    Product:
      properties:
        get__typename:
          type: string
        handle:
          type: string
        id:
          type: string
        status:
          enum:
            - ACTIVE
            - ARCHIVED
            - DRAFT
            - UNLISTED
            - $UNKNOWN
          type: string
        title:
          type: string
      type: object

````