---
title: "Get Membership"
method: GET
path: "/inventory/memberships/{membership_id}"
tags: ["provider", "inventory"]
---

# Get Membership

`GET /inventory/memberships/{membership_id}`

## Request

- Base URL: `https://docs.decodahealth.com` (the document declares no server; this is the origin it was published from)
- URL: `https://docs.decodahealth.com/inventory/memberships/{membership_id}`
- Auth: none declared. Required headers: `TENANT`, `API-KEY`
- TypeScript: <https://skmtc.dev/decodahealth/apis/decoda-api/docs/inventory/memberships/:membership_id/get.ts> (a function with typed inputs; its response is checked against the schema)

Get a specific membership by ID.

## Path parameters

- `membership_id` string, required

## Headers

- `TENANT` string, required
- `API-KEY` string, required

## Response `200`

Successful Response

- MembershipDetail
  - `id` string: Unique identifier for the membership
  - `externalId` string, nullable: External system identifier for the membership
  - `name` string, required: Name of the membership
  - `description` string, nullable: Optional description of the membership
  - `price` integer, required: Price of the membership in cents
  - `globalDiscountPercentage` number, nullable: Global discount percentage for all items
  - `patientCreditAmount` integer: Amount of patient credit in cents
  - `patientCreditFrequency` 'DAILY' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY' | 'SEMI_ANNUALLY' | 'YEARLY'
  - `patientCreditExpiryDays` integer, nullable: Days until patient credit expires
  - `maxRenewals` integer, nullable: Maximum number of renewals (null means unlimited)
  - `autoRenew` boolean: Whether the membership auto-renews
  - `setupFee` integer: Setup fee for the membership in cents
  - `freezeFee` integer: Fee to freeze the membership in cents
  - `minimumBillingCycles` integer: Minimum number of billing cycles required
  - `billingFrequency` 'DAILY' | 'WEEKLY' | 'BIWEEKLY' | 'MONTHLY' | 'QUARTERLY' | 'SEMI_ANNUALLY' | 'YEARLY'
  - `textColor` string, nullable: Text color for the membership
  - `isArchived` boolean: Whether the membership is archived
  - `ruleSetId` string, nullable: ID of the rule set for the membership
  - `discounts` MembershipDiscount[], nullable: Optional discounts for the membership
    - `id` string: Unique identifier for the membership discount
    - `membershipId` string, required: ID of the membership this discount belongs to
    - `itemId` string, nullable: ID of the specific item for this discount (includes packages)
    - `itemCategory` string, nullable: Category name for items in this discount (references category.name)
    - `isPhysical` boolean, nullable: Whether this discount applies to physical items (True), services (False), or neither (None)
    - `discountPercentage` number, nullable: Discount percentage
    - `discountAmount` integer, nullable: Discount amount in cents
    - `creditAmount` integer, nullable: Credit amount in cents
    - `quantity` integer, nullable: Quantity for this discount
    - `rollover` boolean: Whether to rollover unused quantities
    - `rolloverExpiryDays` integer, nullable: Days until rollover items expire
    - `neverExpire` boolean: Whether rollover items never expire
    - `group` string, nullable: Group for this discount
    - `isArchived` boolean: Whether the discount is archived
  - `memberCount` integer, nullable: Number of active members
  - `totalRevenue` integer, nullable: Total revenue from this membership

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/decodahealth/apis/decoda-api.md) - [All operations](https://skmtc.dev/decodahealth/apis/decoda-api/llms.txt) - [OpenAPI document](https://skmtc.dev/decodahealth/apis/decoda-api/revisions/4ab18c80f9e9?raw)
