> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developer.vitablehealth.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developer.vitablehealth.com/_mcp/server.

# List member dependent enrollments

GET https://api.vitablehealth.com/v1/members/{member_id}/dependent-enrollments

Lists coverage a member receives as a dependent on another member's enrollment, across every employer and every state. Coverage dates and `policy_status` are the member's own: a dependent is covered from the first of the month after they were added through the end of the month they were removed in, never outside the policy holder's coverage. The policy holder's premium, contributions, tier, and election are not part of this resource; enrollment actions target the policy holder's enrollment. Enrollments the member holds are listed by `list_member_enrollments`. For an organization caller the rows are scoped to policy holders' employers in that organization's book. A member not visible to the caller returns a 404.

Reference: https://developer.vitablehealth.com/api/members/list-member-dependent-enrollments

## Authentication

- `Authorization` header (bearer token, required) — API Key or Access Token authentication using Bearer token in Authorization header. API keys use the vit_apk_ prefix, access tokens use the vit_at_ prefix.

## Servers

- `https://api.vitablehealth.com` (Production, default)
- `https://api.uat.vitablehealth.com` (UAT)

## Request

### Path parameters

- `member_id` (string, required) — Unique member identifier (mbr_*)

### Headers

- `X-Vitable-Organization` (string, optional) — Organization to act as for this request (e.g. `org_SGVsbG8gV29ybGQ`). Optional when your credentials reach a single organization. Required when they reach several — omitting it then returns 400 `organization_required`. A malformed value returns 400 `invalid_organization_header`, and naming an organization you do not have access to returns 403 `organization_access_denied`.

## Response

### 200

- `data` (list of MemberDependentEnrollment, required)

## Errors

### 400 Bad Request Error

Bad Request - Invalid input or validation error

- `timestamp` (datetime, required) — ISO 8601 timestamp when the error occurred
- `message` (string, required) — Human-readable error message
- `error` (string, required) — Error message (same as message, for backwards compatibility)
- `trace_id` (string, required) — Unique trace ID for debugging and support requests
- `app_error_code` (string, optional, nullable) — Application-specific error code for programmatic handling

### 401 Unauthorized Error

Unauthorized - Invalid or missing API key

- `timestamp` (datetime, required) — ISO 8601 timestamp when the error occurred
- `message` (string, required) — Human-readable error message
- `error` (string, required) — Error message (same as message, for backwards compatibility)
- `trace_id` (string, required) — Unique trace ID for debugging and support requests
- `app_error_code` (string, optional, nullable) — Application-specific error code for programmatic handling

### 403 Forbidden Error

Forbidden - Insufficient permissions for this resource

- `timestamp` (datetime, required) — ISO 8601 timestamp when the error occurred
- `message` (string, required) — Human-readable error message
- `error` (string, required) — Error message (same as message, for backwards compatibility)
- `trace_id` (string, required) — Unique trace ID for debugging and support requests
- `app_error_code` (string, optional, nullable) — Application-specific error code for programmatic handling

### 404 Not Found Error

Resource not found.

- `timestamp` (datetime, required) — ISO 8601 timestamp when the error occurred
- `message` (string, required) — Human-readable error message
- `error` (string, required) — Error message (same as message, for backwards compatibility)
- `trace_id` (string, required) — Unique trace ID for debugging and support requests
- `app_error_code` (string, optional, nullable) — Application-specific error code for programmatic handling

### 409 Conflict Error

Conflict - Resource already exists or conflicts with current state

- `timestamp` (datetime, required) — ISO 8601 timestamp when the error occurred
- `message` (string, required) — Human-readable error message
- `error` (string, required) — Error message (same as message, for backwards compatibility)
- `trace_id` (string, required) — Unique trace ID for debugging and support requests
- `app_error_code` (string, optional, nullable) — Application-specific error code for programmatic handling

### 429 Too Many Requests Error

Too Many Requests - Rate limit exceeded

- `timestamp` (datetime, required) — ISO 8601 timestamp when the error occurred
- `message` (string, required) — Human-readable error message
- `error` (string, required) — Error message (same as message, for backwards compatibility)
- `trace_id` (string, required) — Unique trace ID for debugging and support requests
- `app_error_code` (string, optional, nullable) — Application-specific error code for programmatic handling

### 500 Internal Server Error

Internal Server Error - An unexpected error occurred

- `timestamp` (datetime, required) — ISO 8601 timestamp when the error occurred
- `message` (string, required) — Human-readable error message
- `error` (string, required) — Error message (same as message, for backwards compatibility)
- `trace_id` (string, required) — Unique trace ID for debugging and support requests
- `app_error_code` (string, optional, nullable) — Application-specific error code for programmatic handling

### 502 Bad Gateway Error

Bad Gateway - External service error

- `timestamp` (datetime, required) — ISO 8601 timestamp when the error occurred
- `message` (string, required) — Human-readable error message
- `error` (string, required) — Error message (same as message, for backwards compatibility)
- `trace_id` (string, required) — Unique trace ID for debugging and support requests
- `app_error_code` (string, optional, nullable) — Application-specific error code for programmatic handling

## Types

### MemberDependentEnrollment

Wire serializer for :class:`MemberDependentEnrollmentDTO` (coverage received as a dependent).

- `id` (string, required) — Opaque dependent enrollment identifier (dpen_*).
- `dependent_member_id` (string, required) — Member id of the covered dependent (the member in the path), with 'mbr_' prefix
- `enrollment_id` (string, required) — The policy holder's enrollment that provides this coverage
- `relationship` (enum, required) — The member's relationship to the policy holder * `Spouse` - Spouse * `Child` - Child
  - Allowed values: `Spouse`, `Child`
- `policy_holder_member_id` (string, required) — Member id of the policy holder, with 'mbr_' prefix
- `policy_holder_first_name` (string, required) — First name of the policy holder
- `policy_holder_last_name` (string, required) — Last name of the policy holder
- `employer_id` (string, required) — The policy holder's employer for this coverage
- `employer_name` (string, required) — Name of the policy holder's employer
- `benefit_plan_year_id` (string, required) — Benefit plan year of the policy holder's enrollment
- `benefit_type` (enum, required) — High-level benefit grouping (e.g., Medical, Dental) * `Medical` - Medical * `Dental` - Dental * `Vision` - Vision * `Hospital` - Hospital
  - Allowed values: `Medical`, `Dental`, `Vision`, `Hospital`
- `product_code` (enum, required) — The benefit product of the policy holder's enrollment * `EBA` - Eba Mec * `VPC` - Vpc Enhanced * `VPC_CORE` - Vpc Core * `MEC` - Vpc Mec * `MEC2` - Mec2 * `MEC_PLUS` - Mec Plus * `MVP` - Mvp * `MVP2` - Mvp2 * `MVPSL` - Mvpsl * `MVPSL2` - Mvpsl2 * `VD` - Dental * `VV` - Vision * `ICHRA` - Ichra * `ICHRA_PREMIUM_PLUS` - Ichra Premium Plus * `ICHRA_REIMBURSEMENT_ONLY` - Ichra Reimbursement Only
  - Allowed values: `EBA`, `VPC`, `VPC_CORE`, `MEC`, `MEC2`, `MEC_PLUS`, `MVP`, `MVP2`, `MVPSL`, `MVPSL2`, `VD`, `VV`, `ICHRA`, `ICHRA_PREMIUM_PLUS`, `ICHRA_REIMBURSEMENT_ONLY`
- `product_name` (string, required) — Display name of the benefit product
- `carrier_name` (string, required, nullable) — Insurance carrier name; null when no active carrier period is resolvable
- `plan_name` (string, required, nullable) — Benefit plan the policy holder elected
- `coverage_start` (date, required, nullable) — First day the member is covered (YYYY-MM-DD), never before the policy holder's coverage; null when the member gets no covered day
- `coverage_end` (date, required, nullable) — Last day the member is covered (YYYY-MM-DD, inclusive), never after the policy holder's coverage. A removed dependent is covered through the end of the month they were removed in. Null while open-ended or when the member gets no covered day
- `cancelled_date` (date, required, nullable) — Date coverage was cancelled before it started (YYYY-MM-DD): the earliest of the member's removal, the policy holder's termination and the policy holder's coverage end that falls before the member's coverage start; otherwise null
- `plan_year_coverage_start` (date, required, nullable) — Benefit plan-year coverage start date (YYYY-MM-DD)
- `plan_year_coverage_end` (date, required, nullable) — Benefit plan-year coverage end date (YYYY-MM-DD); null when the plan year is open-ended
- `policy_status` (enum, required, nullable) — Where the member's own coverage stands: `Coverage Upcoming`, `Coverage Effective`, `Coverage Ended`, or `Cancelled`. * `Coverage Upcoming` - Coverage Upcoming * `Coverage Effective` - Coverage Effective * `Coverage Ended` - Coverage Ended * `Cancelled` - Cancelled
  - Allowed values: `Coverage Upcoming`, `Coverage Effective`, `Coverage Ended`, `Cancelled`

## Examples

**Response**

```json
{
  "data": [
    {
      "id": "dpen_AAAAAAAAAAAAAAAAAAAAAQ",
      "dependent_member_id": "mbr_AAAAAAAAAAAAAAAAAAAAAg",
      "enrollment_id": "enrl_AAAAAAAAAAAAAAAAAAAAAQ",
      "relationship": "Spouse",
      "policy_holder_member_id": "mbr_AAAAAAAAAAAAAAAAAAAAAQ",
      "policy_holder_first_name": "Alex",
      "policy_holder_last_name": "Rivera",
      "employer_id": "empr_AAAAAAAAAAAAAAAAAAAAAQ",
      "employer_name": "Acme Corp",
      "benefit_plan_year_id": "plyr_AAAAAAAAAAAAAAAAAAAAAQ",
      "benefit_type": "Medical",
      "product_code": "MEC_PLUS",
      "product_name": "MEC Plus",
      "carrier_name": "Vitable",
      "plan_name": "MEC Plus",
      "coverage_start": "2026-07-01",
      "coverage_end": "2026-12-31",
      "cancelled_date": null,
      "plan_year_coverage_start": "2026-01-01",
      "plan_year_coverage_end": "2026-12-31",
      "policy_status": "Coverage Effective"
    }
  ]
}
```

**SDK Code**

```python Member Dependent Enrollments
import requests

url = "https://api.vitablehealth.com/v1/members/mbr_abc123def456/dependent-enrollments"

headers = {"Authorization": "Bearer <apiKey>"}

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

print(response.json())
```

```javascript Member Dependent Enrollments
const url = 'https://api.vitablehealth.com/v1/members/mbr_abc123def456/dependent-enrollments';
const options = {method: 'GET', headers: {Authorization: 'Bearer <apiKey>'}};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go Member Dependent Enrollments
package main

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

func main() {

	url := "https://api.vitablehealth.com/v1/members/mbr_abc123def456/dependent-enrollments"

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

	req.Header.Add("Authorization", "Bearer <apiKey>")

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

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

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby Member Dependent Enrollments
require 'uri'
require 'net/http'

url = URI("https://api.vitablehealth.com/v1/members/mbr_abc123def456/dependent-enrollments")

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

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <apiKey>'

response = http.request(request)
puts response.read_body
```

```java Member Dependent Enrollments
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.get("https://api.vitablehealth.com/v1/members/mbr_abc123def456/dependent-enrollments")
  .header("Authorization", "Bearer <apiKey>")
  .asString();
```

```php Member Dependent Enrollments
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('GET', 'https://api.vitablehealth.com/v1/members/mbr_abc123def456/dependent-enrollments', [
  'headers' => [
    'Authorization' => 'Bearer <apiKey>',
  ],
]);

echo $response->getBody();
```

```csharp Member Dependent Enrollments
using RestSharp;

var client = new RestClient("https://api.vitablehealth.com/v1/members/mbr_abc123def456/dependent-enrollments");
var request = new RestRequest(Method.GET);
request.AddHeader("Authorization", "Bearer <apiKey>");
IRestResponse response = client.Execute(request);
```

```swift Member Dependent Enrollments
import Foundation

let headers = ["Authorization": "Bearer <apiKey>"]

let request = NSMutableURLRequest(url: NSURL(string: "https://api.vitablehealth.com/v1/members/mbr_abc123def456/dependent-enrollments")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "GET"
request.allHTTPHeaderFields = headers

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```