---
title: Fetch Customer Subscriptions
slug: fetch-customer-subscriptions
docTags: 
createdAt: 2026-08-25T19:28:59.170Z
---

{
  "id": "PyUpTW0apeMcPut2n1vii",
  "type": "api-oas-v2",
  "data": {
    "method": "GET",
    "url": "https://api.nue.io/subscriptions",
    "servers": [
      {
        "url": "https://api.nue.io/subscriptions",
        "description": "**Production Environment** - Live production server for all customer-facing operations. Use this for production integrations with real customer data and transactions."
      },
      {
        "url": "https://api.sandbox.nue.io/subscriptions",
        "description": "**Sandbox Environment** - Safe testing environment with sample data for development and integration testing. No rate limits apply. Data is reset weekly. Perfect for prototyping and QA testing."
      }
    ],
    "name": "Fetch Customer Subscriptions",
    "description": "<p>This endpoint allows you to retrieve all subscriptions associated with a customer. Supports both current subscription data and point-in-time snapshots with upcoming changes.</p>",
    "contentType": "application/json",
    "request": {
      "pathParameters": [],
      "headerParameters": [
        {
          "name": "accept",
          "type": "string",
          "kind": "optional",
          "description": "Generated from available response content types",
          "enum": [
            "application/json"
          ],
          "default": "application/json"
        }
      ],
      "queryParameters": [
        {
          "kind": "optional",
          "name": "customerIds",
          "type": "array",
          "description": "<p>A JSON-encoded array of customerIds to fetch all customer subscriptions for those customers. Cannot be used with name parameter.</p>",
          "schema": [],
          "itemType": "string",
          "customType": "string[]"
        },
        {
          "kind": "optional",
          "name": "name",
          "type": "string",
          "description": "The name of the subscription to fetch. Cannot be used with the customerIds parameter."
        },
        {
          "kind": "optional",
          "name": "snapshotDate",
          "type": "string",
          "description": "<p>Generate a point-in-time snapshot of the subscription as it existed on this date. Format is YYYY-MM-DD. When provided, returns snapshot-formatted data with calculated upcoming changes. Cannot be used with history, status, or version parameters.</p>"
        },
        {
          "kind": "optional",
          "name": "history",
          "type": "boolean",
          "description": "Include the history of the subscription. Can only be used with the name parameter. Cannot be used with snapshotDate."
        },
        {
          "kind": "optional",
          "name": "includes",
          "type": "string",
          "description": "<p>A list of fields to include in the response. Valid options are product, pricetags, and upcomingChanges (only with snapshotDate).</p>",
          "enum": [
            "product",
            "pricetags",
            "upcomingChanges"
          ]
        },
        {
          "kind": "optional",
          "name": "productDetail",
          "type": "string",
          "description": "<p>Controls how much of each product is returned. Requires <code>includes=product</code>. Sending <code>productDetail</code> without it returns 400 INVALID_PARAMETER_COMBINATION.</p>\n<ul>\n<li><code>full</code> (default): the complete product, including its recursive product option graph.</li>\n<li><code>root</code>: the product's own identity and pricing only. <code>productOptions</code> and <code>productFeatures</code> are omitted, while <code>id</code>, <code>sku</code>, <code>name</code>, <code>priceModel</code>, <code>status</code>, <code>publishStatus</code>, <code>uom</code> and <code>priceBookEntries</code> are retained.</li>\n</ul>\n<p>Use <code>root</code> when you need to identify the product a subscription is on rather than its sellable configuration. For bundles with deep option trees this substantially reduces the response size. The value is case-insensitive and an empty value is treated as <code>full</code>; any other value returns 400 INVALID_PARAMETER.</p>",
          "default": "full",
          "enum": [
            "full",
            "root"
          ]
        },
        {
          "kind": "optional",
          "name": "bundled",
          "type": "boolean",
          "description": "<p>Filters to subscriptions by whether they are a bundled component priced as part of a parent bundle.</p>\n<p><code>false</code> also matches subscriptions where the value was never set, so <code>true</code> and <code>false</code> partition the result set between them.</p>"
        },
        {
          "kind": "optional",
          "name": "subscriptionLevel",
          "type": "string",
          "example": "1,2",
          "description": "<p>Filters to subscriptions at a given depth in the bundle hierarchy. <code>1</code> is a top-level subscription, <code>2</code> is an option inside it, and so on.</p>\n<p>Accepts a comma-separated list, e.g. <code>1,2</code>. A well-formed value outside the range present in the data matches nothing rather than erroring; a non-integer value returns 400 INVALID_FILTER_VALUE.</p>"
        },
        {
          "kind": "optional",
          "name": "status",
          "type": "string",
          "description": "<p>Filter the subscriptions by status. Valid values are active for currently active subscriptions, expired for past subscriptions, or canceled for canceled subscriptions. Cannot be used with snapshotDate.</p>",
          "enum": [
            "active",
            "expired",
            "canceled"
          ]
        },
        {
          "kind": "optional",
          "name": "version",
          "type": "string",
          "description": "Filter the subscriptions by version. Valid values are latest for current versions or snapshot for chronological snapshots. Cannot be used with snapshotDate.",
          "enum": [
            "latest",
            "snapshot"
          ]
        }
      ],
      "bodyDataParameters": [],
      "formDataParameters": [],
      "oAuthParameters": [
        {
          "id": "ApiKeyAuth",
          "name": "nue-api-key",
          "kind": "optional",
          "type": "apiKey",
          "in": "header"
        }
      ],
      "cookieParameters": []
    },
    "responses": [
      {
        "statusCode": "200",
        "description": "Successful retrieval of customer subscriptions.",
        "jsonExample": "",
        "isExpanded": true,
        "schema": [
          {
            "kind": "optional",
            "type": "object",
            "description": "",
            "schema": [],
            "complexItems": [
              {
                "name": "Regular Subscription Response",
                "schema": []
              },
              {
                "name": "Snapshot Response",
                "schema": []
              }
            ],
            "complexType": "oneOf",
            "isExpanded": true
          }
        ]
      },
      {
        "statusCode": "207",
        "description": "<p>Partial success. The subscriptions were returned, but at least one filter could not be applied, typically a filter combined with <code>snapshotDate</code> on a field that a snapshot recalculates. The skipped filters are named in a <code>FILTER_NOT_SUPPORTED_WITH_SNAPSHOT</code> entry in <code>warnings</code>.</p>",
        "jsonExample": "",
        "isExpanded": true
      },
      {
        "statusCode": "400",
        "description": "<p>Invalid request. Returned when a query parameter does not correspond to a field on the subscription object, when a filter value does not match its field's type (INVALID_FILTER_VALUE), or when <code>productDetail</code> is supplied without <code>includes=product</code> (INVALID_PARAMETER_COMBINATION).</p>",
        "jsonExample": "",
        "isExpanded": true
      }
    ],
    "hasXCodeSamples": false,
    "examples": {
      "languages": [
        {
          "id": "QnY5i0SZevFut4P_l1wmL",
          "language": "curl",
          "label": "cURL",
          "code": "curl --request GET \\\n     --url 'https://api.nue.io/subscriptions?productDetail=full' \\\n     --header 'accept: application/json'"
        },
        {
          "id": "VhUDIqUIJ0_GJFoIsaGma",
          "language": "javascript",
          "label": "javascript",
          "code": "var myHeaders = new Headers();\nmyHeaders.append(\"accept\", \"application/json\");\nmyHeaders.append(\"content-type\", \"application/json\");\n\nvar requestOptions = {\n   method: 'GET',\n   headers: myHeaders,\n   redirect: 'follow'\n};\n\nfetch(\"https://api.nue.io/subscriptions?productDetail=full\", requestOptions)\n   .then(response => response.text())\n   .then(result => console.log(result))\n   .catch(error => console.log('error', error));"
        },
        {
          "id": "hV1Ntmr4ZE_lmJ-yHVotw",
          "language": "ruby",
          "label": "Ruby",
          "code": "require \"uri\"\nrequire \"json\"\nrequire \"net/http\"\n\nurl = URI(\"https://api.nue.io/subscriptions?productDetail=full\")\n\nhttps = Net::HTTP.new(url.host, url.port)\nhttps.use_ssl = true\n\nrequest = Net::HTTP::Get.new(url)\nrequest[\"accept\"] = \"application/json\"\nrequest[\"content-type\"] = \"application/json\"\n\nresponse = https.request(request)\nputs response.read_body\n"
        },
        {
          "id": "PvIY60ck-lNhSMjIs4SzG",
          "language": "python",
          "label": "Python",
          "code": "import requests\nimport json\n\nurl = \"https://api.nue.io/subscriptions?productDetail=full\"\n\npayload = {}\nheaders = {\n   'accept': 'application/json',\n   'content-type': 'application/json'\n}\n\nresponse = requests.request(\"GET\", url, headers=headers, data=payload)\n\nprint(response.text)\n"
        }
      ],
      "selectedLanguageId": "QnY5i0SZevFut4P_l1wmL"
    },
    "results": {
      "languages": [
        {
          "id": "ocri-jv6P62oVxtQ3nn67",
          "language": "200",
          "code": "// Successful retrieval of customer subscriptions.\n{}"
        },
        {
          "id": "aSk-rer-yAbBmH5Z5AaZ7",
          "language": "207",
          "code": "// Partial success. The subscriptions were returned, but at least one filter could not be applied, typically a filter combined with snapshotDate on a field that a snapshot recalculates. The skipped filters are named in a FILTER_NOT_SUPPORTED_WITH_SNAPSHOT entry in warnings.\n"
        },
        {
          "id": "1hTtcJKnNIpGqDHf90kc5",
          "language": "400",
          "code": "// Invalid request. Returned when a query parameter does not correspond to a field on the subscription object, when a filter value does not match its field's type (INVALID_FILTER_VALUE), or when productDetail is supplied without includes=product (INVALID_PARAMETER_COMBINATION).\n"
        }
      ],
      "selectedLanguageId": "ocri-jv6P62oVxtQ3nn67"
    }
  },
  "children": [
    {
      "text": ""
    }
  ]
}