---
title: "Get product subscriptions by org. Roles: admin."
method: GET
path: "/api/memberships/{membershipId}/product-subscriptions"
tags: ["Product Subscriptions", "Organizations"]
---

# Get product subscriptions by org. Roles: admin.

`GET /api/memberships/{membershipId}/product-subscriptions`

## Path parameters

- `membershipId` integer, required

## Response `200`

OK

- ProductSubscriptionsResponseProductSubscriptionCore
  - `success` boolean
  - `error` string
  - `productSubscriptions` ProductSubscriptionCore[]
    - `audit` Audit
      - `createdTime` string, date-time
      - `modifiedTime` string, date-time
      - `modifiedBy` string
    - `productSubscriptionId` integer
    - `membershipId` integer
    - `member` MemberSlim
      - `userMembershipId` integer
      - `membershipId` integer
      - `username` string
      - `firstName` string
      - `middleName` string
      - `lastName` string
      - `email` string
      - `phone` string
      - `membershipNumber` string
      - `fullName` string
      - `isPrimary` boolean
    - `product` ProductCore
      - `audit` Audit
        - `createdTime` string, date-time
        - `modifiedTime` string, date-time
        - `modifiedBy` string
      - `productId` integer
      - `membershipId` integer
      - `name` string
      - `detail` string
      - `currency` 'AED' | 'ARS' | 'AUD' | 'CAD' | 'CHF' | 'CLP' | 'CNY' | 'EUR' | 'GBP' | 'INR' | 'JPY' | 'KRW' | 'MYR' | 'NZD' | 'PKR' | 'SGD' | 'USD' | 'ZAR'
      - `price` integer
      - `imageUuid` string, uuid
      - `typeCode` 'CERT' | 'COURSE' | 'EVENT'
      - `salesStartTime` string, date-time
      - `salesEndTime` string, date-time
      - `eventCheckInStartTime` string, date-time
      - `eventCheckInEndTime` string, date-time
      - `availableForSale` boolean
      - `availableForCheckIn` boolean
      - `active` boolean
      - `recurring` boolean
      - `recurringInterval` 'DAY' | 'WEEK' | 'MONTH' | 'YEAR'
      - `recurringIntervalCount` integer
      - `allowProrate` boolean
      - `taxEnabled` boolean
      - `taxCode` string
      - `enrollmentScopeCode` 'ENROLL' | 'ENROLL_AND_RENEW' | 'RENEW'
      - `audiencePromo` AudiencePromo
        - `contentId` integer
        - `actionText` string
        - `localizedValues` AudiencePromoLocaleValues
          - `actionText` string
      - `previewing` boolean
      - `programScopeCode` 'ENROLL' | 'ENROLL_AND_RENEW' | 'RENEW'
    - `initialCredit` integer
    - `initialDue` integer
    - `initialServiceCharge` integer
    - `serviceCharge` integer
    - `statusCode` 'PENDING' | 'ACTIVE' | 'PAST_DUE' | 'UNPAID' | 'CANCELLED' | 'INCOMPLETE' | 'INCOMPLETE_EXPIRED'
    - `gatewayType` 'STRIPE'
    - `gatewaySubscriptionId` string
    - `gatewayCustomerId` string
    - `startTime` string, date-time
    - `endTime` string, date-time
    - `cancelTime` string, date-time
    - `cancelPendingTime` string, date-time
    - `currentPeriodStartTime` string, date-time
    - `currentPeriodEndTime` string, date-time
    - `cancelAtPeriodEnd` boolean
    - `applicationFeePercent` integer

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Not found
- `500` — Internal server error

## Changes

- **2026-09-02** `870f28ba2607` — 5 info
  - added the optional property `error/errorId` to the response with the `400` status
  - added the optional property `error/errorId` to the response with the `401` status
  - added the optional property `error/errorId` to the response with the `403` status
  - added the optional property `error/errorId` to the response with the `404` status
  - …1 more

[Change history](https://skmtc.dev/mobilecoach/apis/untitled-api/changes/api/memberships/:membershipId/product-subscriptions/get.md)

---

[API](https://skmtc.dev/mobilecoach/apis/untitled-api.md) · [All operations](https://skmtc.dev/mobilecoach/apis/untitled-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/mobilecoach/untitled-api/revisions/870f28ba2607/schema)
