Skip to content

Products

List and search the products Subrise has synced from your Shopify store, and get every variant of a product, with the Subrise API.

Use these endpoints to find the products and variants to put on a subscription. They need a key with Read permission. See Developer API for the base URL and authentication.

List products

text
GET /products/allProducts

Returns your store's active products from Subrise's copy of your catalog. Subrise keeps this copy in sync with Shopify.

Query parameterTypeDescription
showAllbooleanSend true. It returns every active product and lets query search them.
querystringOptional. Text to find in the product title, handle or ID, or a variant's title, SKU or ID. Case doesn't matter.
pageintegerPage number, starting at 1. Default 1.
limitintegerProducts per page. Default 200.
bash
curl "https://backend-production.subrise.app/api/products/allProducts?showAll=true&query=pot&page=1&limit=25" \
  -H "x-api-key: $SUBRISE_API_KEY"
json
{
  "products": [
    {
      "productId": "gid://shopify/Product/8107112661271",
      "legacyResourceId": "8107112661271",
      "title": "Clay Plant Pot",
      "handle": "clay-plant-pot",
      "status": "ACTIVE",
      "vendor": "Subrise Demo",
      "tags": ["planters"],
      "minVariantPriceAmount": 9.99,
      "maxVariantPriceAmount": 14.99,
      "minVariantPriceCurrency": "USD",
      "totalVariants": 2,
      "sellingPlanGroupCount": 1,
      "variants": [
        {
          "variantId": "gid://shopify/ProductVariant/44406306701591",
          "title": "Regular",
          "displayName": "Clay Plant Pot - Regular",
          "sku": "POT-REG",
          "price": 9.99,
          "inventoryQuantity": 120,
          "availableForSale": true,
          "imageUrl": "https://cdn.shopify.com/s/files/1/0713/7977/9863/products/pot.jpg"
        }
      ]
    }
  ],
  "totalProductsCount": 1,
  "totalPages": 1,
  "currentPage": 1,
  "hasNextPage": false,
  "hasPreviousPage": false
}

price here is a number in your store's currency. When nothing matches, products is an empty array.

Note

Right after you install Subrise, before its first catalog sync finishes, this endpoint searches Shopify directly. The response then has products, totalProductsCount and a Shopify pageInfo object instead of the page fields above.

Get a product's variants

text
GET /products/{productId}/productVariants

Returns every variant of one product, read live from Shopify.

Path parameterTypeDescription
productIdstringThe product's numeric ID, such as 8107112661271.
bash
curl https://backend-production.subrise.app/api/products/8107112661271/productVariants \
  -H "x-api-key: $SUBRISE_API_KEY"

The response is an array of Shopify variant objects:

json
[
  {
    "id": "gid://shopify/ProductVariant/44406306701591",
    "title": "Regular",
    "displayName": "Clay Plant Pot - Regular",
    "position": 1,
    "sku": "POT-REG",
    "barcode": null,
    "price": "9.99",
    "inventoryQuantity": 120,
    "sellableOnlineQuantity": 120,
    "availableForSale": true,
    "inventoryPolicy": "DENY",
    "taxable": true,
    "image": { "url": "https://cdn.shopify.com/s/files/1/0713/7977/9863/products/pot.jpg" },
    "createdAt": "2026-01-12T10:04:31Z",
    "product": { "title": "Clay Plant Pot" }
  }
]

Use a variant's id as productVariantId when you add a product to a subscription.