Skip to main content
GET
/
analytics
/
dashboards
/
memberships
/
grouped
Get Memberships Grouped
curl --request GET \
  --url https://api.decodahealth.com/analytics/dashboards/memberships/grouped \
  --header 'API-KEY: <api-key>' \
  --header 'Content-Type: application/json' \
  --header 'TENANT: <tenant>' \
  --data '
{
  "membership_ids": [],
  "member_statuses": [],
  "location_ids": [],
  "sold_by_provider_ids": []
}
'
import requests

url = "https://api.decodahealth.com/analytics/dashboards/memberships/grouped"

payload = {
"membership_ids": [],
"member_statuses": [],
"location_ids": [],
"sold_by_provider_ids": []
}
headers = {
"TENANT": "<tenant>",
"API-KEY": "<api-key>",
"Content-Type": "application/json"
}

response = requests.get(url, json=payload, headers=headers)

print(response.text)
const options = {
method: 'GET',
headers: {TENANT: '<tenant>', 'API-KEY': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
membership_ids: [],
member_statuses: [],
location_ids: [],
sold_by_provider_ids: []
})
};

fetch('https://api.decodahealth.com/analytics/dashboards/memberships/grouped', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.decodahealth.com/analytics/dashboards/memberships/grouped",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => json_encode([
'membership_ids' => [

],
'member_statuses' => [

],
'location_ids' => [

],
'sold_by_provider_ids' => [

]
]),
CURLOPT_HTTPHEADER => [
"API-KEY: <api-key>",
"Content-Type: application/json",
"TENANT: <tenant>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"strings"
"net/http"
"io"
)

func main() {

url := "https://api.decodahealth.com/analytics/dashboards/memberships/grouped"

payload := strings.NewReader("{\n \"membership_ids\": [],\n \"member_statuses\": [],\n \"location_ids\": [],\n \"sold_by_provider_ids\": []\n}")

req, _ := http.NewRequest("GET", url, payload)

req.Header.Add("TENANT", "<tenant>")
req.Header.Add("API-KEY", "<api-key>")
req.Header.Add("Content-Type", "application/json")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.decodahealth.com/analytics/dashboards/memberships/grouped")
.header("TENANT", "<tenant>")
.header("API-KEY", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"membership_ids\": [],\n \"member_statuses\": [],\n \"location_ids\": [],\n \"sold_by_provider_ids\": []\n}")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.decodahealth.com/analytics/dashboards/memberships/grouped")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["TENANT"] = '<tenant>'
request["API-KEY"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"membership_ids\": [],\n \"member_statuses\": [],\n \"location_ids\": [],\n \"sold_by_provider_ids\": []\n}"

response = http.request(request)
puts response.read_body
{
  "groups": [
    {
      "key": "<string>",
      "label": "<string>",
      "count": 123,
      "summary": {
        "memberCount": 0,
        "monthlyEquivalentRevenue": 0,
        "activeCount": 0,
        "frozenCount": 0,
        "cancelledCount": 0,
        "delinquentCount": 0,
        "expiredCount": 0
      },
      "rows": [
        {
          "id": "<string>",
          "patientId": "<string>",
          "membershipId": "<string>",
          "membership": {
            "name": "<string>",
            "price": 123,
            "id": "<string>",
            "externalId": "<string>",
            "description": "<string>",
            "globalDiscountPercentage": 0,
            "patientCreditAmount": 0,
            "patientCreditFrequency": "MONTHLY",
            "patientCreditExpiryDays": 123,
            "maxRenewals": 0,
            "autoRenew": true,
            "setupFee": 0,
            "freezeFee": 0,
            "minimumBillingCycles": 0,
            "billingFrequency": "MONTHLY",
            "textColor": "<string>",
            "isArchived": false,
            "ruleSetId": "<string>",
            "merchantAccountId": "<string>",
            "feeSchedule": [
              {
                "cycleNumber": 2,
                "price": 1,
                "id": "<string>",
                "membershipId": ""
              }
            ]
          },
          "startDate": "2023-11-07T05:31:56Z",
          "autoRenew": true,
          "patient": {
            "id": "<string>",
            "createdDate": "2023-11-07T05:31:56Z",
            "firstName": "<string>",
            "lastName": "<string>",
            "phoneNumber": "<string>",
            "email": "<string>",
            "locationId": "<string>",
            "externalId": "<string>",
            "address": "<string>",
            "addressLineTwo": "<string>",
            "city": "<string>",
            "state": "<string>",
            "zipCode": "<string>",
            "country": "<string>",
            "addressValid": true,
            "meta": {},
            "isArchived": true,
            "primaryLocationId": "<string>",
            "gender": "<string>",
            "pronouns": "<string>",
            "preferredName": "<string>",
            "dateOfBirth": "2023-12-25",
            "patientMedications": [
              "<string>"
            ],
            "leadSource": "<string>",
            "onSchedulingBlacklist": true,
            "surchargeDisabled": true,
            "tags": [
              {
                "id": "<string>",
                "name": "<string>",
                "isActive": true,
                "createdDate": "2023-11-07T05:31:56Z",
                "emoji": "<string>",
                "color": "<string>",
                "updatedDate": "2023-11-07T05:31:56Z"
              }
            ],
            "creditBalance": 123,
            "preferredProviderId": "<string>",
            "dosespotPatientId": "<string>",
            "primaryLocation": {
              "id": "<string>",
              "name": "<string>",
              "isVirtual": true
            }
          },
          "charges": [
            {
              "id": "<string>",
              "patientId": "<string>"
            }
          ],
          "soldByProviderId": "<string>",
          "endDate": "2023-11-07T05:31:56Z",
          "nextBillingDate": "2023-11-07T05:31:56Z",
          "freezeDate": "2023-11-07T05:31:56Z",
          "unfreezeDate": "2023-11-07T05:31:56Z",
          "soldByProvider": {
            "id": "<string>",
            "firstName": "<string>",
            "lastName": "<string>"
          },
          "createdDate": "2023-11-07T05:31:56Z",
          "updatedDate": "2023-11-07T05:31:56Z",
          "paymentMethod": {
            "id": "<string>",
            "patientId": "<string>",
            "rainforestPaymentMethodId": "<string>",
            "brand": "<string>",
            "last4": "<string>",
            "expMonth": 123,
            "expYear": 123,
            "accountHolderType": "<string>",
            "accountNumberLast4": 123,
            "bankName": "<string>",
            "routingNumber": 123,
            "description": "<string>",
            "isDefault": false,
            "isArchived": false,
            "availableMerchantIds": [
              "<string>"
            ],
            "createdDate": "2023-11-07T05:31:56Z"
          }
        }
      ],
      "totalPages": 123
    }
  ],
  "grandTotals": {
    "memberCount": 0,
    "monthlyEquivalentRevenue": 0,
    "activeCount": 0,
    "frozenCount": 0,
    "cancelledCount": 0,
    "delinquentCount": 0,
    "expiredCount": 0
  },
  "totalCount": 123
}
{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}

Headers

TENANT
string
required

The tenant you are making this request on behalf of

API-KEY
string
required

Your api key

Query Parameters

group_by
enum<string>
default:none
Available options:
location,
membership,
status,
soldByProvider,
none
location_ids
string[]
membership_ids
string[]
member_statuses
string[]
sold_by_provider_ids
string[]
pagination[pageSize]
integer | null
pagination[groupKey]
string | null
pagination[page]
integer | null
page
integer | null
per_page
integer | null
sort_by
string | null
sort_direction
enum<string> | null
Available options:
asc,
desc
location_id
string | null
patient_name
string | null
created_date_start
string<date-time> | null
created_date_end
string<date-time> | null
start_date_start
string<date-time> | null
start_date_end
string<date-time> | null
next_billing_date_start
string<date-time> | null
next_billing_date_end
string<date-time> | null
timezone
string
default:UTC

Body

application/json
membership_ids
string[]
member_statuses
enum<string>[]
Available options:
ACTIVE,
EXPIRED,
CANCELLED,
DELINQUENT,
FROZEN,
INACTIVE
location_ids
string[]
sold_by_provider_ids
string[]

Response

Successful Response

Complete response from the memberships grouped endpoint.

groups
MembershipsGroup · object[]
required
grandTotals
MembershipsSummary · object
required

Aggregated summary for a group or grand totals.

totalCount
integer
required