A `member` resource represents a channel member for a YouTube
channel. A member provides recurring monetary support to a creator and receives special
benefits. For example, members are able to chat when the creator turns on members-only mode for
a chat.

The following access restrictions apply:

- Access to the `members` and `membershipsLevels` endpoints is limited to YouTube creators who have a dedicated YouTube Partner Manager.
- Access is granted at the channel level. Because of this channel-level allowlisting, the `youtube.channel-memberships.creator` OAuth scope does not go through the standard Google Cloud OAuth verification process.

## Methods

The API supports the following methods for `member` resources:

[list](https://developers.google.com/youtube/data/reference/rest/v3/members/list.md.txt)
:   Lists members (formerly known as "sponsors") for a channel. The API request must be authorized by
    the channel owner.

## Resource representation

The following JSON structure shows the format of a `member` resource:

```
{
  "kind": "youtube#member",
  "etag": etag,
  "snippet": {
    "creatorChannelId": string,
    "memberDetails": {
      "channelId": string,
      "channelUrl": string,
      "displayName": string,
      "profileImageUrl": string
    },
    "membershipsDetails": {
      "highestAccessibleLevel": string,
      "highestAccessibleLevelDisplayName": string,
      "accessibleLevels": [
        string
      ],
      "membershipsDuration": {
        "memberSince": datetime,
        "memberTotalDurationMonths": integer,
      },
      "membershipsDurationAtLevel": [
        {
          "level": string,
          "memberSince": datetime,
          "memberTotalDurationMonths": integer,
        }
      ]
    }
  }
}
```

### Properties

The following table defines the properties that appear in this resource:

| Properties ||
|---|---|
| `kind` | `string` Identifies the API resource's type. The value will be `youtube#member`. |
| `etag` | `etag` The Etag of this resource. |
| `snippet` | `object` The `snippet` object contains details about the member. |
| `snippet.creatorChannelId` | `string` The YouTube channel ID of the creator that offers memberships. |
| `snippet.memberDetails` | `object` This object contains profile data about the YouTube channel that is paying for the membership. <br /> Note that a channel can have members with unavailable profile data. For example, this occurs with members who have deleted their channels but are still paying for memberships. Note that these members can still access their membership benefits. <br /> API responses include resources for those members to ensure accurate counts even though the profile details inside the `memberDetails` object are not set. The `membershipsDetails` are still provided for such members. |
| `snippet.memberDetails.channelId` | `string` The YouTube channel ID of the member channel. If it is set, the channel ID can also be treated as a unique identifier for the member. If it is not set, the member cannot be uniquely identified, but the resource still conveys membership details such as the levels that the member can access and the duration of their membership. |
| `snippet.memberDetails.channelUrl` | `string` The channel's URL. |
| `snippet.memberDetails.displayName` | `string` The channel's display name. |
| `snippet.memberDetails.profileImageUrl` | `string` The channel's avatar URL. |
| `snippet.membershipsDetails` | `object` This object contains membership details for the member channel. |
| `snippet.membershipsDetails.highestAccessibleLevel` | `string` The ID of the highest membership level that the member channel can currently access. The value corresponds to the `id` property value in a `membershipsLevel` resource. |
| `snippet.membershipsDetails.highestAccessibleLevelDisplayName` | `string` The name of the highest membership level that the member channel can currently access. The value corresponds to the `displayName` property value in a `membershipsLevel` resource. |
| `snippet.membershipsDetails.accessibleLevels[]` | `list (of strings)` A list of IDs for all membership levels that the user can currently access. The list includes the currently active level and all levels below it. |
| `snippet.membershipsDuration` | `object` This object contains information about the overall duration of the current member's membership without regard to pricing levels. The `snippet.membershipsDetails.membershipsDurationAtLevel[]` property then contains a list of objects that contain details about a period of the membership during which the member had access to a particular membership level. <br /> The following example shows how these properties work: A member purchases a new membership in January at membership level 1 and has that membership until March. In April and May, the member does not have a membership. In June, the member restarts their membership, again at level 1. Then, in August, the member upgrades their membership to level 2. So, if an API call is made in October, the `member` resource would contain the following: ``` "membershipsDetails": { "membershipsDuration": { "memberSince": "2020-06-01T12:00:00", "memberTotalDurationMonths": 7, }, "membershipsDurationAtLevel": [ { "level": "level_1_ID", "memberSince": "2020-06-01T12:00:00", "memberTotalDurationMonths": 7 }, { "level": "level_2_ID", "memberSince": "2020-08-01T12:00:00", "memberTotalDurationMonths": 2 }, ] } ``` |
| `snippet.membershipsDuration.memberSince` | `datetime` The date and time that the member's current membership started. In other words, the member has continuously had a membership since this date and time. Note that different periods of the membership might have been spent at different membership levels. |
| `snippet.membershipsDuration.memberTotalDurationMonths` | `integer` The number of months, rounded down to the nearest integer, that the user has been a member. The value reflects the number of complete months that the member has had a membership, but the number does not imply that the member has continuously had a membership for that many months. |
| `snippet.memberDetails.membershipsDetails.membershipsDurationAtLevel[]` | `list (of objects)` A list of objects, in which each object contains details about a period of the membership during which the member had access to a particular membership level. The list includes one object for each membership level that the member can currently access. |
| `snippet.memberDetails.membershipsDetails.membershipsDurationAtLevel.level` | `string` The membership level ID. The value corresponds to the `id` property value in a `membershipsLevel` resource. |
| `snippet.memberDetails.membershipsDetails.membershipsDurationAtLevel.memberSince` | `datetime` The date and time from which the member has had access to the specified membership level. In other words, the member has continuously had access to the level since this date and time. Note that different periods of the membership might have been spent at higher membership levels. |
| `snippet.memberDetails.membershipsDetails.membershipsDurationAtLevel.memberTotalDurationMonths` | `integer` The number of months, rounded down to the nearest integer, that the user has had access to the specified level. The value reflects the number of complete months that the member has had access to the level, but the number does not imply that the member has continuously had a membership for that many months. |